Saturday, May 12, 2018

Collection Framework in Java Script -

A Collection Framework class contains all basic classes like Stack, Queue, HashMap, ArrayList, Set Download Here
define(['require','CONSTANT'], 
    function ( require, CONSTANT ) {
        /**
		 * A Collection Framework class contains all basic classes like Stack, Queue, HashMap, ArrayList, Set
		 * @name Collections
		 * @class Collections
		 * @example require('Collections')
		 * @exports Collections
		 * @version 1.0
		 * @module Collections
		 * @augments CONSTANT
		 **/
		var Collections = {
			
			 /**
			 * Object types provided by Collections 
			 * @name TYPE
			 * @class TYPE
			 * @example require('Collections').TYPE.STACK
			 * @example require('Collections').TYPE.ARRAYLIST
			 * @example require('Collections').TYPE.HASHMAP
			 * @example require('Collections').TYPE.SET
			 * @example require('Collections').TYPE.QUEUE
			 * @example require('Collections').TYPE.TREE
			 * @exports TYPE
			 * @version 1.0
			 * @module Collections
			 * @memberOf Collections
			 * @field
			 **/
			TYPE:{
				/** @constant*/
				STACK:"Stack",
				ARRAYLIST:"ArrayList",
				HASHMAP:"HashMap",
				SET:"Set",
				QUEUE:"Queue",
				TREE:"Tree"
			},
	        /**
			 * A Stack is a Collection that contains duplicate values. Last In First Out. 
			 * @name Stack
			 * @class Stack
			 * @example require('Collections').Stack()
			 * @exports Stack
			 * @version 1.0
			 * @module Collections
			 * @memberOf Collections
			 **/
			Stack: 	function () {
				var stac = [];
				var stackObj = {
					/**
					 * @name pop
					 * @memberOf Collections.Stack
					 * @method 
					 * @description removes the top item from teh stacks
					 * @return {Object} item 
					 * @function
					 */
					pop : function() {
						return stac.pop();
					},
					/**
					 * @name push
					 * @memberOf Collections.Stack
					 * @method 
					 * @description removes the top item from teh stacks
					 * @param {Object} item
					 * @return {null}  
					 * @function
					 */
					push : function(item) {
						stac.push(item);
					},
					/**
					 * @name isEmpty
					 * @memberOf Collections.Stack
					 * @method 
					 * @description returns true if teh Stack is empty.
					 * @return {boolean}  
					 * @function
					 */
					isEmpty : function() {
						return stac.length == 0;
					},
					/**
					 * @name objType
					 * @memberOf Collections.Stack
					 * @method 
					 * @description returns teh Object type as "Stack"
					 * @return {String} ObjectType  
					 * @function
					 */
					objType : function(){
						return "Stack";
					},
					/**
					 * @name getElements
					 * @memberOf Collections.Queue
					 * @method 
					 * @description returns teh Elemnts in the Queue
					 * @return {Object[]} itemArray  
					 * @function
					 */
					getElements : function(){
						return stac.clone();
					},
					/**
					 * @name toString
					 * @memberOf Collections.Stack
					 * @method 
					 * @description returns the JSON data of teh Object
					 * @return {String} ObjectType  
					 * @function
					 */
					toString : function(){
						return "["+stac.join()+"]";
					},
					/**
					 * @name clone
					 * @memberOf Collections.Stack
					 * @method 
					 * @description returns Collection.Stack a new Stack with the cloned object of the items.
					 * @return {Collections.Stack}
					 * @function
					 */
					clone:function(){
						var Collection = require('Collections');
						var cloneStack = Collection.Stack();
						var elements = stac;
						for(var i=0;i=0; i--){
							if(elements[i].clone)
								cloneQueue.add(elements[i].clone());
							else
								cloneQueue.add(elements[i]);
						}
						return cloneQueue;
					}
				};
				return queueObj;
			},
			/**
			 * An ArrayList is a Collection that contains duplicate values. 
			 * @name ArrayList
			 * @class ArrayList
			 * @example require('Collections').ArrayList()
			 * @exports ArrayList
			 * @version 1.0
			 * @module ArrayList
			 * @memberOf Collections
			 **/
			ArrayList : function() {
				var arr = [];
				var array = {
					/**
					 * @name add
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description insert an Item to the ArrayList, it adds to the last of the array, It allows duplicate values in the list.
					 * @param {Object} item
					 * @return {null} 
					 * @function
					 */
					add : function(item) {
						arr.push(item);
					},
					/**
					 * @name addAll
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description insert an array of Items to the ArrayList, it adds to the last of the array, It allows duplicate values in the list.
					 * @param {Object[]} itemArray
					 * @return {null} 
					 * @function
					 */
					addAll : function(items) {
						for(var i=0; i< items.length; i++)
							this.add(items[i]);
					},
					/**
					 * @name indexOf
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns teh index of teh item in the ArrayList, if item not found it returns -1.
					 * @param {Object} item
					 * @return {integer} 
					 * @function
					 */
					indexOf : function(item) {
						return arr.indexOf(item);
					},
					/**
					 * @name contains
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns whether the item present in the ArrayList.
					 * @param {Object} item
					 * @return {boolean} 
					 * @function
					 */
					contains:function(item){
						return arr.indexOf(item) != -1;
					},
					/**
					 * @name remove
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description remove an item from the array, then the remaining items will be shifted left, and their index will be reduced by 1.
					 * @param {Object} item
					 * @return {null} 
					 * @function
					 */
					remove : function(item) {
						if (arr.indexOf(item) >= 0)
							arr.splice(arr.indexOf(item), 1);
					},
					/**
					 * @name size
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns the number of the Elements present in the ArrayList.
					 * @return {integer} 
					 * @function
					 */
					size:function(){
						return arr.length;
					},
					/**
					 * @name get
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns the object at the prvided index.
					 * @param {integer} index
					 * @return {Object} item 
					 * @function
					 */
					get : function(index){
						return arr[index];
					},
					/**
					 * @name set
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description set an item at the specified location
					 * @param {integer} index
					 * @param {Object} Item
					 * @return {null}  
					 * @function
					 */
					set:function(index, item){
						if(index<0) throw "Index out of bound exception";
						arr[index]=item;
					},
					/**
					 * @name getElements
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns teh Elemnts in the ArrayList
					 * @return {Object[]} itemArray  
					 * @function
					 */
					getElements : function(){
						return arr.clone();
					},
					/**
					 * @name objType
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns teh Object type as "ArrayList"
					 * @return {String} ObjectType  
					 * @function
					 */
					objType:function(){
						return "ArrayList";
					},
					/**
					 * @name toString
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns the JSON data of teh Object
					 * @return {String} ObjectType  
					 * @function
					 */
					toString : function(){
						return "["+arr.join()+"]";
					},
					/**
					 * @name json
					 * @memberOf Collections.ArrayList
					 * @method 
					 * @description returns the JSON string
					 * @return {String} json  
					 * @function
					 */
					json :function(){
						var jsonArr=[];
						for(var i=0; i

No comments: