关于数组操作
4.Collections与Arrays
集合框架中的工具类:特点:该工具类中的方法都是静态的。
Collections:常见方法:
1,对list进行二分查找:
前提该集合一定要有序。
int binarySearch(list,key); 求元素所在的索引 (有自然顺序)常用
//必须根据元素自然顺序对列表进行升级排序
//要求list 集合中的元素都是Comparable 的子类。
int binarySearch(list,key,Comparator); 如果是自定义类求键的索引 要传入比较器 key是键
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,可以将不同步的集合变成同步的集合。
在方法中加synchronized同步锁来实现的。我们知道synchronized锁的开销较大,在程序中不建议使用。
Set synchronizedSet(Set s)
Map synchronizedMap(Map
import java.util.ArrayList;
import java.util.Collections;
import java.util.Arrays;
import java.util.List;
class Demo1
{
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(4);
list.add(3);
list.add(1);
list.add(2);
list.add(3);
// 排序
Collections.sort(list);
// 折半查找的前提是排序好的元素
System.out.println( Collections.binarySearch( list , 8 ) ); // 找不到返回-插入点-1
// 反序集合输出
Collections.reverse( list );
System.out.println( list );
// 求最值
System.out.println( Collections.max( list ) ); // 4
// fill() 使用指定的元素替换指定集合中的所有元素
// Collections.fill( list, 5 );
System.out.println( list );
// 将数组转换为集合
Integer is[] = new Integer[]{6,7,8};
List<Integer> list2 = Arrays.asList(is);
list.addAll( list2 );
System.out.println( list );
// 将List转换为数组
Object [] ins = list.toArray();
System.out.println( Arrays.toString( ins ) );
}
}