该页面演示Collections API的使用,点击下方按钮开始演示
//------------------------------begin //Collections类可以对Collection类型的实例进行操作 //ArrayList、LinkedList、HashSet均可适用,这里用ArrayList做为演示 jcollections.exports('ArrayList', 'Collections');//导出ArrayList、Collections类 var list = new ArrayList();//创建ArrayList实例 list.add({id:1, name:'soctt', toString:function(){return '1:scott';}}); //添加多个对象元素 list.add({id:3, name:'steve', toString:function(){return '3:steve';}}); list.add({id:4, name:'john', toString:function(){return '4:john';}}); list.add({id:2, name:'bill', toString:function(){return '2:bill';}}); console.log('集合元素:' + list); $ //找出id最大的对象元素 var max = Collections.max(list, function(a, b) { return a.id - b.id; }); console.log('id最大的对象: ' + max);//4:john //找出id最小的元素 var min = Collections.min(list, function(a, b) { return a.id - b.id; }); console.log('id最小的对象: ' + min);//1:scott $ Collections.sort(list, function(a, b) {//按id正序排序 return a.id - b.id; }); console.log('id正序排序后的集合: ' + list);//打印id正序排序后的集合 Collections.sort(list, function(a, b) {//按id逆序排序 return b.id - a.id; }); console.log('id逆序排序后的集合: ' + list);//打印id逆序排序后的集合 $ var target = {id:3, name:'steve'}; //按id属性进行二分查找目标对象 var index = Collections.binarySearch(list, target, function(a, b) { return a.id - b.id; }); console.log('按id属性二分查找结果:' + index + '=>name:' + list.get(index).name); console.log('元素反转前的集合: ' + list);//打印反转前的集合元素 Collections.reverse(list);//将集合元素反转 console.log('元素反转后的集合: ' + list);//打印反转后的集合元素 $ list.add({id:4, name:'john', toString:function() {return '4:john';}}); list.defineEquals(function(a, b) {//定义集合的equals方法 return a.id === b.id && a.name === b.name; }); var oldElem = {id:4, name:'john', toString:function(){return '4:john';}}; var newElem = {id:0, name:'tom', toString:function(){return '0:tom';}}; console.log('替换前的集合:' + list);//打印替换前的集合 Collections.replaceAll(list, oldElem, newElem);//将指定的对象元素全部替换成新对象 console.log('全部替换指定元素后的集合: ' + list);//打印替换后的集合 //------------------------------end