该页面演示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