您的位置:首页 > 其它

集合工具类Collections

2013-11-04 10:39 183 查看
Collections:对集合(一般是List集合)操作的工具类

List<String> list = new ArrayList<String>();

list.add("a");
list.add("abcd");
list.add("bbc");
list.add("cc");
list.add("ab");

//使用指定元素替换指定列表中的所有元素
Collections.fill(list,"AA");

//使用另一个值替换列表中出现的所有某一指定值
Collections.replaceAll(list, "a", "A");

sop("原来顺序:"+list);

//反转指定列表中元素的顺序。
Collections.reverse(list);
sop("反转顺序:"+list);

//根据元素的自然顺序 对指定列表按升序进行排序。
Collections.sort(list);
sop("自然顺序:"+list);

//返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序
Collections.sort(list,Collections.reverseOrder());
sop("强逆1顺序:"+list);

//返回一个比较器,它强行逆转指定比较器的顺序
Collections.sort(list,Collections.reverseOrder(Collections.reverseOrder(new comp1())));
sop("强逆2顺序:"+list);

//根据指定比较器产生的顺序对指定列表进行排序
Collections.sort(list,new comp1());
sop("比较顺序:"+list);

//二分查找(必须有序)
sop(Collections.binarySearch(list,"cc"));

//根据元素的自然顺序,返回给定 collection 的最大元素
sop(Collections.max(list));

// 在指定列表的指定位置处交换元素
Collections.swap(list,1,3);

//使用指定的随机源对指定列表进行置换
Collections.shuffle(list);
sop("随机顺序:"+list);

class comp1 implements Comparator<String>
{
@Override
public int compare(String o1, String o2) {

if(o1.length()==o2.length())
return o1.compareTo(o2);
return o1.length( )  >  o2.length() ? 1 : -1;
}
}


-------------------------------------------------------------------------------

集合变数组:Collection接口中的toArray(T[] a)方法

返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。

public class CollectionToArray {

public static void main(String[] args) {

ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
/*
* 指定类型的数组到底要定义多长?
* 1.当指定类型的数组长度小于集合长度的size,
* 	那么该方法内部会创建一个新的数组,长度为集合的size
* 2.当指定类型的数组长度大于集合的死泽,就不会创建新的数组
* 	但多余部分会以null值填充
*
* 为什么要把集合变成数组?
* 为了限定对元素的操作,不允许再进行增删了
* */

String[] arr = al.toArray(new String[al.size()]);
System.out.println(Arrays.toString(arr));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: