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));
}