From ce9c4417cbfa8168c341a6f15dba2e7e11c816d2 Mon Sep 17 00:00:00 2001 From: lancelot Date: Tue, 16 Apr 2019 21:29:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF=E5=B9=B6?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Basis/Arrays,CollectionsCommonMethods.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/docs/java/Basis/Arrays,CollectionsCommonMethods.md b/docs/java/Basis/Arrays,CollectionsCommonMethods.md index f3b97c5e..d49f3ce9 100644 --- a/docs/java/Basis/Arrays,CollectionsCommonMethods.md +++ b/docs/java/Basis/Arrays,CollectionsCommonMethods.md @@ -54,12 +54,12 @@ void rotate(List list, int distance)//旋转。当distance为正数时,将list Collections.reverse(arrayList); System.out.println("Collections.reverse(arrayList):"); System.out.println(arrayList); - - + + Collections.rotate(arrayList, 4); System.out.println("Collections.rotate(arrayList, 4):"); System.out.println(arrayList); - + // void sort(List list),按自然排序的升序排序 Collections.sort(arrayList); System.out.println("Collections.sort(arrayList):"); @@ -69,7 +69,7 @@ void rotate(List list, int distance)//旋转。当distance为正数时,将list Collections.shuffle(arrayList); System.out.println("Collections.shuffle(arrayList):"); System.out.println(arrayList); - + // void swap(List list, int i , int j),交换两个索引位置的元素 Collections.swap(arrayList, 2, 5); System.out.println("Collections.swap(arrayList, 2, 5):"); @@ -93,7 +93,7 @@ void rotate(List list, int distance)//旋转。当distance为正数时,将list int binarySearch(List list, Object key)//对List进行二分查找,返回索引,注意List必须是有序的 int max(Collection coll)//根据元素的自然顺序,返回最大的元素。 类比int min(Collection coll) int max(Collection coll, Comparator c)//根据定制排序,返回最大元素,排序规则由Comparatator类控制。类比int min(Collection coll, Comparator c) -void fill(List list, Object obj)//用指定的元素代替指定list中的所有元素。 +void fill(List list, Object obj)//用指定的元素代替指定list中的所有元素。 int frequency(Collection c, Object o)//统计元素出现次数 int indexOfSubList(List list, List target)//统计target在list中第一次出现的索引,找不到则返回-1,类比int lastIndexOfSubList(List source, list target). boolean replaceAll(List list, Object oldVal, Object newVal), 用新元素替换旧元素 @@ -152,9 +152,9 @@ Collectons提供了多个`synchronizedXxx()`方法·,该方法可以将指定 ```java synchronizedCollection(Collection c) //返回指定 collection 支持的同步(线程安全的)collection。 -synchronizedList(List list)//返回指定列表支持的同步(线程安全的)List。 +synchronizedList(List list)//返回指定列表支持的同步(线程安全的)List。 synchronizedMap(Map m) //返回由指定映射支持的同步(线程安全的)Map。 -synchronizedSet(Set s) //返回指定 set 支持的同步(线程安全的)set。 +synchronizedSet(Set s) //返回指定 set 支持的同步(线程安全的)set。 ``` ### Collections还可以设置不可变集合,提供了如下三类方法: @@ -224,7 +224,7 @@ unmodifiableXxx(): 返回指定集合对象的不可变视图,此处的集合 4. 填充 : `fill()` 5. 转列表: `asList()` 6. 转字符串 : `toString()` -7. +7. ### 排序 : `sort()` @@ -251,7 +251,7 @@ unmodifiableXxx(): 返回指定集合对象的不可变视图,此处的集合 System.out.println(); int c[] = { 1, 3, 2, 7, 6, 5, 4, 9 }; - // parallelSort(int[] a) 按照数字顺序排列指定的数组。同sort方法一样也有按范围的排序 + // parallelSort(int[] a) 按照数字顺序排列指定的数组(并行的)。同sort方法一样也有按范围的排序 Arrays.parallelSort(c); System.out.println("Arrays.parallelSort(c):"); for (int i : c) { @@ -285,6 +285,9 @@ System.out.println(Arrays.toString(strs));//[abcdeag, abcdefg, abcdehg] ```java // *************查找 binarySearch()**************** char[] e = { 'a', 'f', 'b', 'c', 'e', 'A', 'C', 'B' }; + // 排序后再进行二分查找,否则找不到 + Arrays.sort(e); + System.out.println("Arrays.sort(e)" + Arrays.toString(e)); System.out.println("Arrays.binarySearch(e, 'c'):"); int s = Arrays.binarySearch(e, 'c'); System.out.println("字符c在数组的位置:" + s); @@ -293,12 +296,12 @@ System.out.println(Arrays.toString(strs));//[abcdeag, abcdefg, abcdehg] ### 比较: `equals()` ```java - // *************比较 equals**************** - char[] e = { 'a', 'f', 'b', 'c', 'e', 'A', 'C', 'B' }; + // *************比较 equals**************** + char[] e = { 'a', 'f', 'b', 'c', 'e', 'A', 'C', 'B' }; char[] f = { 'a', 'f', 'b', 'c', 'e', 'A', 'C', 'B' }; /* - * 元素数量相同,并且相同位置的元素相同。 另外,如果两个数组引用都是null,则它们被认为是相等的 。 - */ + * 元素数量相同,并且相同位置的元素相同。 另外,如果两个数组引用都是null,则它们被认为是相等的 。 + */ // 输出true System.out.println("Arrays.equals(e, f):" + Arrays.equals(e, f)); ``` @@ -345,12 +348,12 @@ System.out.println(Arrays.toString(strs));//[abcdeag, abcdefg, abcdehg] ### 转字符串 `toString()` ```java - // *************转字符串 toString()**************** - /* - * 返回指定数组的内容的字符串表示形式。 - */ - char[] k = { 'a', 'f', 'b', 'c', 'e', 'A', 'C', 'B' }; - System.out.println(Arrays.toString(k));// [a, f, b, c, e, A, C, B] + // *************转字符串 toString()**************** + /* + * 返回指定数组的内容的字符串表示形式。 + */ + char[] k = { 'a', 'f', 'b', 'c', 'e', 'A', 'C', 'B' }; + System.out.println(Arrays.toString(k));// [a, f, b, c, e, A, C, B] ``` ### 复制 `copyOf()` @@ -358,7 +361,7 @@ System.out.println(Arrays.toString(strs));//[abcdeag, abcdefg, abcdehg] ```java // *************复制 copy**************** // copyOf 方法实现数组复制,h为数组,6为复制的长度 - int[] h = { 1, 2, 3, 3, 3, 3, 6, 6, 6, }; + int[] h = { 1, 2, 3, 3, 3, 3, 6, 6, 6, }; int i[] = Arrays.copyOf(h, 6); System.out.println("Arrays.copyOf(h, 6);:"); // 输出结果:123333 @@ -377,4 +380,3 @@ System.out.println(Arrays.toString(strs));//[abcdeag, abcdefg, abcdehg] // 换行 System.out.println(); ``` -