该页面演示HashSet API的使用,点击下方按钮开始演示
//------------------------------begin //导出HashSet、Collection、Set、ArrayList、LinkedList类 jcollections.exports('HashSet', 'Collection', 'Set', 'ArrayList', 'LinkedList'); var set = new HashSet();//创建HashSet实例 console.log('是否是Collection类型? ' + (set instanceof Collection));//查看是否是Collection类型 console.log('是否是Set类型? ' + (set instanceof Set));//查看是否是Set类型 console.log('初始化: ' + set);//打印set数据 console.log('set是否为空? ' + set.isEmpty());//查看set是否为空 console.log('set元素个数: ' + set.size());//查看set元素个数 $ set.add('hello', 'world');//向set中添加两个不同的元素 set.add('hello');//此次hello重复,添加失败 set.add('world');//此次world重复,也添加失败 console.log('添加两个重复数据后: ' + set);//打印当前set中元素 set.remove('world');//移除world元素 console.log('移除world元素后: ' + set);//打印移除world元素后的set数据 console.log('set中是否包含world元素? ' + set.contains('world'));//查看set中是否包含world元素 $ var set2 = new HashSet();//新创建一个HashSet实例 set2.add('bill', 'scott');//向新set2中添加元素 var list = new ArrayList();//新创建一个Arraylist实例 list.add(1, 2);//向list中添加元素 var list2 = new LinkedList();//新创建一个LinkedList实例 list2.add(3, 4);//向list2中添加元素 set.addAll(set2);//将set2元素添加到set中 set.addAll(list);//将list元素添加到set中 set.addAll(list2);//将list2元素添加到set中 console.log('添加几个集合后set中的数据: ' + set);//打印当前set中元素 $ set.clear();//清空set var person = { name: 'john', age: 40, toString: function() { return person.name + ' => ' + person.age; } }; set.add(person);//添加对象 set.add(person);//同一对象,添加失败 console.log('添加完对象后: ' + set);//打印添加完对象后的set数据 console.log('set中是否包含person对象? ' + set.contains(person));//查看set中是否包含person对象 set.remove(person);//移除person对象 console.log('移除person对象后: ' + set);//打印移除person后的set $ set.add(1, 2, 3, 4, 5, 6);//添加多个元素 console.log('添加元素后set: ' + set);//打印当前set元素 var iter = set.iterator();//获取set的迭代器 while (iter.hasNext()) {//是否还有下一个元素 var elem = iter.next();//迭代下一个元素 if (elem === 2) {//当元素等于2时将其移除 iter.remove(); } } console.log('迭代后的set: ' + set);//打印迭代后的set $ set.clear();//清空set set.defineEquals(function(elem0, elem1) {//定义equals方法,id相同者为同一元素 return elem0.id === elem1.id; }); //下面的obj0和obj1,虽然是不同的对象,但id相同,在set中认为是同一元素 var obj0 = {id: 1, name: 'hello', toString: function() {return 'obj => id:' + obj0.id;}}; var obj1 = {id: 1, name: 'world', toString: function() {return 'obj => id:' + obj1.id;}}; set.add(obj0);//添加obj0对象 set.add(obj1);//因为obj1的id与obj0相同,所以添加失败 console.log('添加两个元素后的set: ' + set);//打印添加元素后的set console.log('set中是否包含obj1? ' + set.contains(obj1));//查看set中是否包含obj1 set.remove(obj1);//移除obj1对象,实际上移除了obj0 console.log('移除obj1之后的set:' + set);//打印移除obj1之后的set //------------------------------end