Collections
常用方法
根据自然排序接口以及比较器接口给集合进行排序
sort(List<T> list, Comparator<? super T> c) ;
二分搜索法搜索指定元素的位置(如果搜索键包含在列表中,则返回搜索键的索引;否则返回 (-(插入点) - 1))
binarySearch(List<? extends Comparable<? super T>> list, T key) ;
binarySearch(List<? extends T> list, T key, Comparator<? super T> c) ;
替换集合中的所有元素
fill(List<? super T> list, T obj) ;
替换集合中的某一个元素;
replaceAll(List<T> list, T oldVal, T newVal) ;
反转元素顺序
强行逆转了排序(Comparable、Comparator)规则
reverseOrder() ;
reverseOrder(Comparator<T> cmp) ;
指定置换与随机置换(扑克牌)
Arrays
数组转成集合有什么好处?
数组转成集合后会有什么限制?
数组转成集合,内部元素对象注意点
1、集合转成数组注意点,转成后数组长度问题
2、为什么要将集合转成数组
相关代码
package com.javaxl; import java.util.*; /** * @author 小李飞刀 * @site www.javaxl.com * @company * @create 2019-05-15 10:28 */ public class CollectionsDemo { public static void main(String[] args) { // method_1(args); // method_reverseOrder(args); // method_3(args); method_4(args); } /** * 数组转集合 为了更方便的操作集合中的元素 * 需要注意对象的类型是引用型还是基本数据类型,转集合的结果会不一样 * @param args */ public static void method_3(String[] args) { String[] arr1 = {"1","3"}; Integer[] arr2 = {1,3}; int[] arr3 = {1,3}; List<String> list1 = Arrays.asList(arr1); List<Integer> list2 = Arrays.asList(arr2); List<int[]> list3 = Arrays.asList(arr3);//注意这里的集合泛型 } /** * 集合转数组 * 若是集合中的元素只想提供查看功能,不提供增删改功能 * @param args */ public static void method_4(String[] args) { ArrayList<String> al = new ArrayList<String>(); al.add("java01"); al.add("java02"); al.add("java03"); // Object[] objs = al.toArray();//[java01, java02, java03] // String[] objs = al.toArray(new String[0]); // [java01, java02, java03] String[] objs = al.toArray(new String[6]); System.out.println(Arrays.toString(objs)); } /** * sort、binarySearch、fill、replaceAll。reverse * @param args */ public static void method_1(String[] args) { List<String> list = new ArrayList<>(); list.add("aaaaaddaa"); list.add("ccccccdb"); list.add("cbcc"); list.add("cccc"); list.add("a1234"); System.out.println(list);//[aaaaaddaa, ccccccdb, cbcc, cccc, a1234] // 自然排序 Collections.sort(list); System.out.println(list);//[a1234, aaaaaddaa, cbcc, cccc, ccccccdb] Collections.sort(list,new CollectionsDemo_String_Comp()); System.out.println(list);//[cbcc, cccc, a1234, ccccccdb, aaaaaddaa] // System.out.println(Collections.binarySearch(list, "ccccccdb"));//3 jdk1.8有所改变 // Collections.fill(list,"vvv");//[vvv, vvv, vvv, vvv, vvv] Collections.replaceAll(list,"cccc","www"); System.out.println(list);//[cbcc, www, a1234, ccccccdb, aaaaaddaa] Collections.reverse(list); System.out.println(list);//[aaaaaddaa, ccccccdb, a1234, www, cbcc] Collections.swap(list,1,2); System.out.println(list);//[aaaaaddaa, a1234, ccccccdb, www, cbcc] Collections.shuffle(list); System.out.println(list);//随机变更两个元素 } public static void method_reverseOrder(String[] args) { // TreeSet<String> list = new TreeSet<>();//[a1234, aaaaaddaa, cbcc, cccc, ccccccdb] TreeSet<String> list = new TreeSet<>(Collections.reverseOrder());//[ccccccdb, cccc, cbcc, aaaaaddaa, a1234] // TreeSet<String> list = new TreeSet<>(new CollectionsDemo_String_Comp());//[cbcc, cccc, a1234, ccccccdb, aaaaaddaa] // TreeSet list = new TreeSet<>(Collections.reverseOrder(new CollectionsDemo_String_Comp()));//[aaaaaddaa, ccccccdb, a1234, cccc, cbcc] list.add("aaaaaddaa"); list.add("ccccccdb"); list.add("cbcc"); list.add("cccc"); list.add("a1234"); System.out.println(list);//[ccccccdb, cccc, cbcc, aaaaaddaa, a1234] } } /** * 从短到长,同等长度字符串自然排序 */ class CollectionsDemo_String_Comp implements Comparator<String>{ @Override public int compare(String o1, String o2) { int num = o1.length() - o2.length(); if(num == 0) return o1.compareTo(o2); return num; } }
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有