集合转换为数组
public static void main(String[] args) {
Collection<String> collection = new ArrayList<String>();
collection.add("aaa");
collection.add("bbb");
collection.add("ccc");
collection.add("ddd");
collection.add("eee");
//集合转换成数组的方法
Object[] o = collection.toArray();
for(int i=0;i<o.length;i++){
System.out.print(o[i]+"--");
}
//集合转换成数组的重载方法
String[] arr = new String[collection.size()];
collection.toArray(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"--");
}
}
数组转换为集合
public static void main(String[] args) {
/**
* 数组转换为集合
* 数组的工具类:Arrays提供了一个静态方法asList,可以将
* 给定的数组转换为一个List集合
*/
//此时对该集合的操作就是对原数组的操作
//由于数组是定长的,所以集合增删元素的操作是不支持的,会抛出异常UnsupportedOperationException。
//若想对数组转换的集合元素增删,那只能自行创建一个集合并包含该集合元素。
//所有集合都提供了一个参数为Collection的构造方法,
//可有在创建当前集合的同时包含给定集合中的所有元素。
String[] arr = {"aaa","bbb","ccc","ddd","eee"};
List<String> list = Arrays.asList(arr);
System.out.println(list);
list.add("1");
}
排序与乱序
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jsbj");
list.add("dsvsd");
list.add("sdv");
list.add("agfd");
list.add("agfw");
list.add("agfww");
list.add("argd");
//集合的工具类:java.util.Collections
//其提供了一个静态方法:Collections.sort(list);
//可以对List集合进行自然排序
Collections.sort(list);
System.out.println(list);
//自然排序(从小到大)
//sort方法要求集合元素必须实现Comparable接口。
//java提供的常用类如:包装类,String等他们都实现了这个接口,定义了元素之间大小规则。
//但是对于我们自定义类型的元素,不建议实现这个接口,因为这样的操作对我们的代码有侵入性,不利于代码维护。
//重载的sort方法要求再传入一个参数,是Comparator接口的实现类。
//该接口是用来单独定义一个比较器,为集合元素制定比较大小的规则。
//这样一来,该sort方法会将集合元素利用该比较器的比较规则两两比较,并按照从小到大的顺序将集合排序。
//Comparator的泛型与集合的泛型一致
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
//按照字符串的个数比较大小
return o1.length()-o2.length();
}
});
System.out.println(list);
//compare方法用来定义参数o1,o2的比较大小规则,
//返回值是一个整数,该值关注的是取值范围
//当返回值>0时表示:o1>o2
//当返回值<0时表示:o1<o2
//当返回值=0时表示:o1==o2
//乱序方法Collections.shuffle(list);
Collections.shuffle(list);
System.out.println(list);
}