------- android培训、java培训、期待与您交流! ----------
Collections:集合框架的工具类。它的出现给集合操作提供了更多的功能。这个类不需要创建对象,内部提供的都是静态方法。
Collections.sort(list); list集合进行元素的自然顺序排序。
Collections.sort(list,new Comparator()); 按指定的比较器方法排序。一般可通过匿名内部类的方式写比较器。
Collections.max(list); 返回list中字典顺序最大的元素。
int index = Collections.binarySearch(list,"zz"); 二分查找,返回角标。
Collections.reverseOrder(); 逆向反转排序。
Collections.shuffle(list); 随机对list中的元素进行位置的置换
二分查找
public static void binarySearchDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.sort(list,new StrLenCom());
System.out.println(list);
int num=Collections.binarySearch(list,"aaa",new StrLenCom());
System.out.println(num);
}
public static void maxDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.sort(list,new StrLenCom());
System.out.println(list);
System.out.println(Collections.max(list,new StrLenCom()));
}
升序排序,利用compareTo和compare
public static void sortDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.sort(list,new StrLenCom());
System.out.println(list);
}
fill方法可以将list集合中的所有元素替换成指定元素
public static void fillDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.fill(list, "pp");
System.out.println(list);
}
replaceAll:替换某个元素
public static void replaceAllDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.replaceAll(list, "aaa", "pp");
System.out.println(list);
}
reverse:反转list
public static void reverseDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.reverse(list);
System.out.println(list);
}
swap:位置置换
public static void swapDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.swap(list,1,2);
System.out.println(list);
}
shuffle:随机置换
public static void shuffleDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
}
根据比较器反转
public static void orderDemo()
{
TreeSet<String> ts=new TreeSet<String>(Collections.reverseOrder(new StrLenCom()));
ts.add("abcde");
ts.add("aaa");
ts.add("kkk");
ts.add("ccc");
Iterator<String> it=ts.iterator();
while (it.hasNext())
{
System.out.println(it.next());
}
}
Arrays:用于操作数组对象的工具类,里面都是静态方法。
asList:将数组变成list集合
class Demo
{
public static void main(String[] args)
{
// int[] arr={2,4,5};
// System.out.println(Arrays.toString(arr));
String[] arr={"abc","cc","kkkk"};
//把数组变成list集合有什么好处?
//可以使用集合的思想和方法来操作数组中的元素。
//注意:将数组变成集合,不可以使用集合的增删方法。
//因为数组的长度是固定的
//如果进行增删操作,那么会返回UnsupportedOperationException
List<String> list=Arrays.asList(arr);
System.out.println("contains:"+list.contains("cc"));
// list.add("qq");//UnsupportedOperationException
System.out.println(list);
// int[] nums={2,4,5};
Integer[] nums={2,4,5};
List<Integer> li=Arrays.asList(nums);
//如果数组中的元素都是对象,那么变成集合时,那么数组中的元素就直接转换成集合中的元素。
//如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存储。
System.out.println(li);
}
public static boolean myContains(String[] arr,String key)
{
for(int x=0;x<arr.length;x++)
{
if(arr[x].equals(key))
{
return true;
}
}
return false;
}
}