UNPKG

qminer

Version:

A C++ based data analytics platform for processing large-scale real-time streams containing structured and unstructured data

735 lines (731 loc) 27.4 kB
<!doctype html> <html> <head> <meta name="generator" content="JSDoc 3"> <meta charset="utf-8"> <title>Class: StrStrMap</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>&nbsp;<span class="label label-static">static</span></div> <h1><small><a href="module-ht.html">ht</a>.<wbr></small><span class="symbol-name">StrStrMap</span></h1> <p class="source-link">Source: <a href="htdoc.js.html#source-line-46">htdoc.<wbr>js:46</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.StrStrMap.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.StrStrMap.html#classDesc">classDesc()</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#dat">dat(n)</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#get">get(key)</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#hasKey">hasKey(key)</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-ht.StrStrMap.html#key">key(n)</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#keyId">keyId(key)</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#load">load(fin)</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#put">put(key, data)</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-ht.StrStrMap.html#save">save(fout)</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#sortDat">sortDat([asc])</a></dt> <dd> </dd> <dt><a href="module-ht.StrStrMap.html#sortKey">sortKey([asc])</a></dt> <dd> </dd> </dl> </div> </div> </div> </section> <section> <h2 id="StrStrMap">new&nbsp;<span class="symbol-name">StrStrMap</span><span class="signature"><span class="signature-params">()</span></span></h2> <p>String-string hashmap.</p> <section> <h3> Example </h3> <div> <pre class="prettyprint"><code>// create a new hashtable ht &#x3D; require(&#x27;qminer&#x27;).ht; var h &#x3D; new ht.StrStrMap(); // Adding two key/dat pairs h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); h.put(&#x27;dog&#x27;, &#x27;tisa&#x27;); // Getting data h.hasKey(&#x27;foo&#x27;); // returns true h.get(&#x27;dog&#x27;); // returns &#x27;tisa&#x27; h.key(1); // returns &#x27;dog&#x27; h.dat(1); // returns &#x27;tisa&#x27; h.length; // returns 2 // Saving and loading: var fs &#x3D; require(&#x27;qminer&#x27;).fs; fout &#x3D; fs.openWrite(&#x27;map.dat&#x27;); // open write stream h.save(fout).close(); // save and close write stream var h2 &#x3D; new ht.StrStrMap(); // new empty table var fin &#x3D; fs.openRead(&#x27;map.dat&#x27;); // 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 &#x3D; require(&#x27;qminer&#x27;).ht; var h &#x3D; new ht.StrStrMap(); // Adding two key/dat pairs h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); // get the number of key/dat pairs var length &#x3D; h.length; // returns 1</code></pre> </div> </section> <dl class="dl-compact"> </dl> </section> <h2>Methods</h2> <section> <h3 id="classDesc"><span class="symbol-name">classDesc</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> string</span></span></h3> <p>classDesc</p> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>string</code>B desc - Returns class description</p> </dd> </dl> <h3 id="dat"><span class="symbol-name">dat</span><span class="signature"><span class="signature-params">(n)</span>&nbsp;&rarr; <span class="signature-returns"> string</span></span></h3> <p>Returns n-th dat.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import modules var qm &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); // add a key/dat pair h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); // get the first dat var key &#x3D; h.key(0); // returns &#x27;bar&#x27;</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>&nbsp;</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>string</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>&nbsp;&rarr; <span class="signature-returns"> string</span></span></h3> <p>Returns dat given key.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import modules var qm &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); // add a key/dat pair h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); // get the newly added data var val &#x3D; h.get(&#x27;foo&#x27;); // returns &#x27;bar&#x27;</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>&nbsp;</p> </td> <td> <p>Hashmap key.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>string</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>&nbsp;&rarr; <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 &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); // add a key/dat pair h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); // check if the hashtable has the key h.hasKey(&#x27;foo&#x27;); // 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>&nbsp;</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>&nbsp;&rarr; <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 &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); // add a key/dat pair h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); // get the first key var key &#x3D; h.key(0); // returns &#x27;foo&#x27;</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>&nbsp;</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>&nbsp;&rarr; <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 &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); // add a key/dat pair h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); // get key id of &#x27;foo&#x27; var key &#x3D; h.keyId(&#x27;foo&#x27;); // 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>&nbsp;</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>&nbsp;&rarr; <span class="signature-returns"> <a href="module-ht.StrStrMap.html">module:ht.StrStrMap</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 &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; var fs &#x3D; qm.fs; // create a new hashtable var h &#x3D; new ht.StrStrMap(); fout &#x3D; fs.openWrite(&#x27;map.dat&#x27;); // open write stream h.save(fout).close(); // save and close write stream var fin &#x3D; fs.openRead(&#x27;map.dat&#x27;); // open read stream var h2 &#x3D; new ht.StrStrMap(); 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>&nbsp;</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.StrStrMap.html">module:ht.StrStrMap</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>&nbsp;&rarr; <span class="signature-returns"> <a href="module-ht.StrStrMap.html">module:ht.StrStrMap</a></span></span></h3> <p>Add/update key-value pair.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import modules var qm &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); // add a key/dat pair h.put(&#x27;foo&#x27;, &#x27;bar&#x27;);</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>&nbsp;</p> </td> <td> <p>Hashmap key.</p> </td> </tr> <tr> <td> <p>data</p> </td> <td> <p>string</p> </td> <td> <p>&nbsp;</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.StrStrMap.html">module:ht.StrStrMap</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>&nbsp;&rarr; <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 &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; var fs &#x3D; qm.fs; // create a new hashtable var h &#x3D; new ht.StrStrMap(); fout &#x3D; fs.openWrite(&#x27;map.dat&#x27;); // 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>&nbsp;</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>&nbsp;&rarr; <span class="signature-returns"> <a href="module-ht.StrStrMap.html">module:ht.StrStrMap</a></span></span></h3> <p>Sorts by dat.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import modules var qm &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); h.put(&#x27;dog&#x27;, &#x27;tisa&#x27;); // 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.StrStrMap.html">module:ht.StrStrMap</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>&nbsp;&rarr; <span class="signature-returns"> <a href="module-ht.StrStrMap.html">module:ht.StrStrMap</a></span></span></h3> <p>Sorts by keys.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import modules var qm &#x3D; require(&#x27;qminer&#x27;); var ht &#x3D; qm.ht; // create a new hashtable var h &#x3D; new ht.StrStrMap(); h.put(&#x27;foo&#x27;, &#x27;bar&#x27;); h.put(&#x27;dog&#x27;, &#x27;tisa&#x27;); // 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.StrStrMap.html">module:ht.StrStrMap</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>