Collection的集合与数组的转换,集合的排序和乱序

tech2022-09-11  99

集合转换为数组

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); }
最新回复(0)