Java中Collections与Arrays
一、Collections:常见方法:
1、 对list进行二分查找:前提该集合一定要有序。
int binarySearch(list,key); 必须根据元素自然顺序对列表进行升级排序
int binarySearch(list,key,Comparator); 要求list 集合中的元素都是Comparable 的子类。
2、对list集合进行排序。
sort(list); 对list进行排序,其实使用的事list容器中的对象的compareTo方法
sort(list,comaprator); 按照指定比较器进行排序
3、对集合取最大值或者最小值。
max(Collection)
max(Collection,comparator)
min(Collection)
min(Collection,comparator)
4、对list集合进行反转。
reverse(list);
5、对比较方式进行强行逆转。
Comparator reverseOrder();
Comparator reverseOrder(Comparator);
6、对list集合中的元素进行位置的置换。
swap(list,x,y);
7、对list集合进行元素的替换。如果被替换的元素不存在,那么原集合不变。
replaceAll(list,old,new);
8、可以将不同步的集合变成同步的集合。
Set synchronizedSet(Set<T> s)
Map synchronizedMap(Map<K,V> m)
List synchronizedList(List<T> list)
9、如果想要将集合变数组:
可以使用Collection 中的toArray 方法。注意:是Collection不是Collections工具类,传入指定的类型数组即可,该数组的长度最好为集合的size。
二、Arrays:用于对数组操作的工具类
1、二分查找,数组需要有序
binarySearch(int[])
binarySearch(double[])
2、数组排序
sort(int[])
sort(char[])……
1、 将数组变成字符串。
toString(int[])
2、 复制数组。
copyOf();
3、 复制部分数组。
copyOfRange():
4、 比较两个数组是否相同。
equals(int[],int[]);
5、 将数组变成集合。
List asList(T[]);
这样可以通过集合的操作来操作数组中元素,但是不可以使用增删方法,add,remove。因为数组长度是固定的,会出现UnsupportOperationExcetion。
可以使用的方法:contains,indexOf。。。
如果数组中存入的基本数据类型,那么asList会将数组实体作为集合中的元素。
如果数组中的存入的引用数据类型,那么asList会将数组中的元素作为集合中的元素。
实例代码:
1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Arrays; 4 import java.util.List; 5 class Demo1 6 { 7 public static void main(String[] args) 8 { 9 ArrayList<Integer> list = new ArrayList<Integer>(); 10 list.add(4); 11 list.add(3); 12 list.add(1); 13 list.add(2); 14 list.add(3); 15 // 排序 16 Collections.sort(list); 17 // 折半查找的前提是排序好的元素 18 System.out.println( Collections.binarySearch( list , 8 ) ); // 找不到返回-插入点-1 19 // 反序集合输出 20 Collections.reverse( list ); 21 System.out.println( list ); 22 // 求最值 23 System.out.println( Collections.max( list ) ); // 4 24 // fill() 使用指定的元素替换指定集合中的所有元素 25 // Collections.fill( list, 5 ); 26 System.out.println( list ); 27 28 // 将数组转换为集合 29 Integer is[] = new Integer[]{6,7,8}; 30 List<Integer> list2 = Arrays.asList(is); 31 list.addAll( list2 ); 32 System.out.println( list ); 33 34 // 将List转换为数组 35 Object [] ins = list.toArray(); 36 System.out.println( Arrays.toString( ins ) ); 37 38 39 } 40 }