关于数组操作
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 ) )
// 反序集合输出
Collections.reverse( list )
System.out.println( list )
// 求最值
System.out.println( Collections.max( list ) )
// 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 ) )
}
}