qminer
Version:
A C++ based data analytics platform for processing large-scale real-time streams containing structured and unstructured data
724 lines (720 loc) • 26.6 kB
HTML
<html>
<head>
<meta name="generator" content="JSDoc 3">
<meta charset="utf-8">
<title>Class: StrFltMap</title>
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css">
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css">
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css">
<link href="css/baseline.css" rel="stylesheet">
</head>
<body onload="prettyPrint()">
<nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar">
<div id="jsdoc-navbar-container">
<div id="jsdoc-navbar-content">
<a href="index.html" class="jsdoc-navbar-package-name">QMiner JavaScript API v9.4.0</a>
</div>
</div>
</nav>
<div id="jsdoc-body-container">
<div id="jsdoc-content">
<div id="jsdoc-content-container">
<div id="jsdoc-main" role="main">
<header class="page-header">
<div class="symbol-detail-labels"><span class="label label-kind">class</span> <span class="label label-static">static</span></div>
<h1><small><a href="module-ht.html">ht</a>.<wbr></small><span class="symbol-name">StrFltMap</span></h1>
<p class="source-link">Source: <a href="htdoc.js.html#source-line-458">htdoc.<wbr>js:458</a></p>
<div class="symbol-classdesc">
<p>Used for storing key/data pairs, wraps an efficient C++ implementation.</p>
</div>
<dl class="dl-compact">
</dl>
</header>
<section id="summary">
<div class="summary-callout">
<h2 class="summary-callout-heading">Property</h2>
<div class="summary-content">
<div class="summary-column">
<dl class="dl-summary-callout">
<dt><a href="module-ht.StrFltMap.html#length">length</a></dt>
<dd>
</dd>
</dl>
</div>
<div class="summary-column">
</div>
<div class="summary-column">
</div>
</div>
</div>
<div class="summary-callout">
<h2 class="summary-callout-heading">Methods</h2>
<div class="summary-content">
<div class="summary-column">
<dl class="dl-summary-callout">
<dt><a href="module-ht.StrFltMap.html#dat">dat(n)</a></dt>
<dd>
</dd>
<dt><a href="module-ht.StrFltMap.html#get">get(key)</a></dt>
<dd>
</dd>
<dt><a href="module-ht.StrFltMap.html#hasKey">hasKey(key)</a></dt>
<dd>
</dd>
<dt><a href="module-ht.StrFltMap.html#key">key(n)</a></dt>
<dd>
</dd>
</dl>
</div>
<div class="summary-column">
<dl class="dl-summary-callout">
<dt><a href="module-ht.StrFltMap.html#keyId">keyId(key)</a></dt>
<dd>
</dd>
<dt><a href="module-ht.StrFltMap.html#load">load(fin)</a></dt>
<dd>
</dd>
<dt><a href="module-ht.StrFltMap.html#put">put(key, data)</a></dt>
<dd>
</dd>
<dt><a href="module-ht.StrFltMap.html#save">save(fout)</a></dt>
<dd>
</dd>
</dl>
</div>
<div class="summary-column">
<dl class="dl-summary-callout">
<dt><a href="module-ht.StrFltMap.html#sortDat">sortDat([asc])</a></dt>
<dd>
</dd>
<dt><a href="module-ht.StrFltMap.html#sortKey">sortKey([asc])</a></dt>
<dd>
</dd>
</dl>
</div>
</div>
</div>
</section>
<section>
<h2 id="StrFltMap">new <span class="symbol-name">StrFltMap</span><span class="signature"><span class="signature-params">()</span></span></h2>
<p>String-Float hashmap.</p>
<section>
<h3>
Example
</h3>
<div>
<pre class="prettyprint"><code>// create a new hashtable
ht = require('qminer').ht;
var h = new ht.StrFltMap();
// Adding two key/dat pairs
h.put('foo', 10.5);
h.put('bar', 20.2);
// Getting data
h.hasKey('foo'); // returns true
h.get('bar'); // returns 20.2
h.key(1); // returns 'bar'
h.dat(1); // returns 20.2
h.length; // returns 2
// Saving and loading:
var fs = require('qminer').fs;
fout = fs.openWrite('map.dat'); // open write stream
h.save(fout).close(); // save and close write stream
var h2 = new ht.StrFltMap(); // new empty table
var fin = fs.openRead('map.dat'); // open read stream
h2.load(fin); // load</code></pre>
</div>
</section>
<dl class="dl-compact">
</dl>
</section>
<section>
<h2>Property</h2>
<section>
<h3 id="length"><span class="symbol-name">length</span></h3>
<p>Number of key/dat pairs. Type <code>number</code>.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// create a new hashtable
ht = require('qminer').ht;
var h = new ht.StrFltMap();
// Adding two key/dat pairs
h.put('foo', 10.5);
// get the number of key/dat pairs
var length = h.length; // returns 1</code></pre>
</div>
</section>
<dl class="dl-compact">
</dl>
</section>
<h2>Methods</h2>
<section>
<h3 id="dat"><span class="symbol-name">dat</span><span class="signature"><span class="signature-params">(n)</span> → <span class="signature-returns"> number</span></span></h3>
<p>Returns n-th dat.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
// add a key/dat pair
h.put('foo', 10.5);
// get the first dat
var key = h.key(0); // returns 10.5</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>n</p>
</td>
<td>
<p>number</p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Hashmap dat index number. Should be between 0 and length-1.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code>number</code>B The n-th data value.</p>
</dd>
</dl>
<h3 id="get"><span class="symbol-name">get</span><span class="signature"><span class="signature-params">(key)</span> → <span class="signature-returns"> number</span></span></h3>
<p>Returns dat given key.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
// add a key/dat pair
h.put('foo', 10.5);
// get the newly added data
var val = h.get('foo'); // returns 10.5</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>key</p>
</td>
<td>
<p>string</p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Hashmap key.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code>number</code>B Hashmap data.</p>
</dd>
</dl>
<h3 id="hasKey"><span class="symbol-name">hasKey</span><span class="signature"><span class="signature-params">(key)</span> → <span class="signature-returns"> boolean</span></span></h3>
<p>Returns true if the map has a given key.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
// add a key/dat pair
h.put('foo', 10.5);
// check if the hashtable has the key
h.hasKey('foo'); // returns true</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>key</p>
</td>
<td>
<p>string</p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Hashmap key.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code>boolean</code>B True if the map contains key. Otherwise, false.</p>
</dd>
</dl>
<h3 id="key"><span class="symbol-name">key</span><span class="signature"><span class="signature-params">(n)</span> → <span class="signature-returns"> string</span></span></h3>
<p>Returns n-th key.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
// add a key/dat pair
h.put('foo', 10.5);
// get the first key
var key = h.key(0); // returns 'foo'</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>n</p>
</td>
<td>
<p>number</p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Hashmap key index number. Should be between 0 and length-1.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code>string</code>B The n-th key.</p>
</dd>
</dl>
<h3 id="keyId"><span class="symbol-name">keyId</span><span class="signature"><span class="signature-params">(key)</span> → <span class="signature-returns"> number</span></span></h3>
<p>Returns the ID of the key provided as parameter.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
// add a key/dat pair
h.put('foo', 10.5);
// get key id of 'foo'
var key = h.keyId('foo'); // returns 0</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>key</p>
</td>
<td>
<p>string</p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Hashmap key.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code>number</code>B n - Hashmap index number of the key.</p>
</dd>
</dl>
<h3 id="load"><span class="symbol-name">load</span><span class="signature"><span class="signature-params">(fin)</span> → <span class="signature-returns"> <a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></span></span></h3>
<p>Loads the hashtable from input stream.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
var fs = qm.fs;
// create a new hashtable
var h = new ht.StrFltMap();
fout = fs.openWrite('map.dat'); // open write stream
h.save(fout).close(); // save and close write stream
var fin = fs.openRead('map.dat'); // open read stream
var h2 = new ht.StrFltMap();
h2.load(fin); // load</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>fin</p>
</td>
<td>
<p><a href="module-fs.FIn.html">module:fs.FIn</a></p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Input stream.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code><a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></code>B Self.</p>
</dd>
</dl>
<h3 id="put"><span class="symbol-name">put</span><span class="signature"><span class="signature-params">(key, data)</span> → <span class="signature-returns"> <a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></span></span></h3>
<p>Add/update key-value pair.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
// add a key/dat pair
h.put('foo', 10.5);</code></pre>
</div>
</section>
<section>
<h4>Parameters</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>key</p>
</td>
<td>
<p>string</p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Hashmap key.</p>
</td>
</tr>
<tr>
<td>
<p>data</p>
</td>
<td>
<p>number</p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Hashmap data.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code><a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></code>B Self.</p>
</dd>
</dl>
<h3 id="save"><span class="symbol-name">save</span><span class="signature"><span class="signature-params">(fout)</span> → <span class="signature-returns"> <a href="module-fs.FOut.html">module:fs.FOut</a></span></span></h3>
<p>Saves the hashtable to output stream.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
var fs = qm.fs;
// create a new hashtable
var h = new ht.StrFltMap();
fout = fs.openWrite('map.dat'); // open write stream
h.save(fout).close(); // save and close write stream</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>fout</p>
</td>
<td>
<p><a href="module-fs.FOut.html">module:fs.FOut</a></p>
</td>
<td>
<p> </p>
</td>
<td>
<p>Output stream.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code><a href="module-fs.FOut.html">module:fs.FOut</a></code>B fout.</p>
</dd>
</dl>
<h3 id="sortDat"><span class="symbol-name">sortDat</span><span class="signature"><span class="signature-params">([asc])</span> → <span class="signature-returns"> <a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></span></span></h3>
<p>Sorts by dat.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
h.put('foo', 10.5);
h.put('bar', 20.2);
// sort the hashtable by dat
h.sortDat();</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>asc</p>
</td>
<td>
<p>boolean</p>
</td>
<td>
<p>Yes</p>
</td>
<td>
<p>If true, sorts in ascending order.</p>
<p>Defaults to <code>true</code>.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code><a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></code>B Self.</p>
</dd>
</dl>
<h3 id="sortKey"><span class="symbol-name">sortKey</span><span class="signature"><span class="signature-params">([asc])</span> → <span class="signature-returns"> <a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></span></span></h3>
<p>Sorts by keys.</p>
<section>
<h4>
Example
</h4>
<div>
<pre class="prettyprint"><code>// import modules
var qm = require('qminer');
var ht = qm.ht;
// create a new hashtable
var h = new ht.StrFltMap();
h.put('foo', 10.5);
h.put('bar', 20.2);
// sort the hashtable by keys
h.sortKey();</code></pre>
</div>
</section>
<section>
<h4>Parameter</h4>
<table class="jsdoc-details-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Optional</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>asc</p>
</td>
<td>
<p>boolean</p>
</td>
<td>
<p>Yes</p>
</td>
<td>
<p>If true, sorts in ascending order.</p>
<p>Defaults to <code>true</code>.</p>
</td>
</tr>
</tbody>
</table>
</section>
<dl class="dl-compact">
<dt>Returns</dt>
<dd>
<p><code><a href="module-ht.StrFltMap.html">module:ht.StrFltMap</a></code>B Self.</p>
</dd>
</dl>
</section>
</section>
</div>
</div>
<nav id="jsdoc-toc-nav" role="navigation"></nav>
</div>
</div>
<footer id="jsdoc-footer" class="jsdoc-footer">
<div id="jsdoc-footer-container">
<p>
</p>
</div>
</footer>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/tree.jquery.js"></script>
<script src="scripts/prettify.js"></script>
<script src="scripts/jsdoc-toc.js"></script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/scrollanchor.js"></script>
</body>
</html>