sort(),max(),binarySearch(),fill()
public class CollectionsDemo { public static void main(String[] args) { replaceAllDemo(); } public static void replaceAllDemo(){ List<String> list = new ArrayList<String>(); list.add("abcd"); list.add("aaaa"); list.add("z"); list.add("kkk"); list.add("qq"); list.add("qq"); System.out.println(list); Collections.replaceAll(list,"qq","aa");//指定元素替换 list.set() System.out.println(list); Collections.reverse(list);//反转 System.out.println(list); } public static void fillDemo(){ List<String> list = new ArrayList<String>(); list.add("abcd"); list.add("aaaa"); list.add("z"); list.add("kkk"); list.add("qq"); list.add("qq"); Collections.fill(list,"pp"); //[pp, pp, pp, pp, pp, pp],元素全部替换 System.out.println(list); } //原理 public static int halfSearch(List<String> list, String key) { int max, min, mid; max = list.size() - 1; min = 0; while (min <= max) { mid = (max + min) >> 1; String str = list.get(mid); int num = str.compareTo(key); if (num > 0) max = mid - 1; else if (num < 0) min = mid + 1; else return mid; } return -min - 1; } public static void binarySearchDemo() { List<String> list = new ArrayList<String>(); list.add("abcd"); list.add("aaaa"); list.add("z"); list.add("kkk"); list.add("qq"); list.add("qq"); Collections.sort(list); System.out.println(list); //搜索关键字的索引,如果它包含在列表中,则返回搜索键的索引; 否则,返回(-(插入点) - 1) 。 如果列表中的所有元素都小于指定的键,或list.size()。 插入点被定义为将键插入到列表中的点。 请注意,这确保当且仅当找到该键时返回值将为> = 0。 int index = Collections.binarySearch(list, "aaaaa"); System.out.println(index); } public static void maxDemo() { List<String> list = new ArrayList<String>(); list.add("abcd"); list.add("aaaa"); list.add("z"); list.add("kkk"); list.add("qq"); list.add("qq"); Collections.sort(list); System.out.println(list); // String max = Collections.max(list); //自然排序最后的元素 String max = Collections.max(list, new StrLenComparator()); //长度 System.out.println(max); } public static void sortDemo() { List<String> list = new ArrayList<String>(); list.add("abcd"); list.add("aaaa"); list.add("z"); list.add("kkk"); list.add("qq"); list.add("qq"); System.out.println(list); // Collections.sort(list); //自然排序 Collections.sort(list, new StrLenComparator()); //传入比较器 System.out.println(list); } } class StrLenComparator implements Comparator<String> { @Override public int compare(String o1, String o2) { if (o1.length() > o2.length()) return 1; if (o1.length() < o2.length()) return -1; return o1.compareTo(o2); } }