コレクション ツール クラスは、コレクション/マップに対する多数の操作を提供します。この記事では、Power Node Java Academy によってコンパイルされたコレクション ツール クラスを主に紹介します。必要な方は参照してください。コレクション ツール クラスは、コレクション/マップの多数の操作を提供します。メソッド:
public void testSort() { System.out.println("原始顺序:" + list); Collections.reverse(list); System.out.println("reverse后顺序:" + list); Collections.shuffle(list); System.out.println("shuffle后顺序:" + list); Collections.swap(list, 1, 3); System.out.println("swap后顺序:" + list); Collections.sort(list); System.out.println("sort后顺序:" + list); Collections.rotate(list, 1); System.out.println("rotate后顺序:" + list); }
元の順序: [b Zhang San、d Sun Liu、a Li Si、e Qian] Qi、c Zhao Wu]
シャッフル後の順序: [b Zhang San、c Zhao Wu、d Sun Liu、e Qian Qi、a Li Si]
入れ替え後の順序: [b Zhang San、e Qian Qi、d Sun Liu、c Zhao Wu、a Li Si]
並べ替え後の順序: [a Li Si、b Zhang San 、c 趙呉、d 孫劉、e 銭七]
回転後の順序: [e 銭旗、a 李思、b 張三、c 趙呉、d 孫劉]
public void testSearch() { System.out.println("给定的list:" + list); System.out.println("max:" + Collections.max(list)); System.out.println("min:" + Collections.min(list)); System.out.println("frequency:" + Collections.frequency(list, "a李四")); Collections.replaceAll(list, "a李四", "aa李四"); System.out.println("replaceAll之后:" + list); // 如果binarySearch的对象没有排序的话,搜索结果是不确定的 System.out.println("binarySearch在sort之前:" + Collections.binarySearch(list, "c赵五")); Collections.sort(list); // sort之后,结果出来了 System.out.println("binarySearch在sort之后:" + Collections.binarySearch(list, "c赵五")); Collections.fill(list, "A"); System.out.println("fill:" + list); }
指定されたリスト: [ b 張三、d 孫劉、a 李四、e 銭七、c 趙呉]
最小: a 李四
頻度: 1
置換後すべて: [b 張三、d 孫劉、aa Li Si、e Qian Qi、c Zhao Wu]
binary並べ替え前の検索: -4
binary並べ替え後の検索: 2
fill: [A、A、A、A、A]
3.コレクション ツール クラスは、複数の syn
onizedXxx メソッドを提供します。このメソッドは、対応する Synchronize オブジェクトを返し、複数のスレッドがコレクションに同時にアクセスする場合のスレッドの安全性 問題を解決します。 HashSet、ArrayList、および HashMap はすべてスレッドセーフではありません。同期を考慮する必要がある場合は、これらのメソッドを使用してください。これらのメソッドには主に、synchronizedSet、synchronizedSortedSet、synchronizedList、synchronizedMap、synchronizedSortedMap が含まれます。
反復メソッドを使用してコレクションを走査する場合、返されたコレクションを手動で同期する必要があることに特に注意してください。
Map m = Collections.synchronizedMap(new HashMap()); ... Set s = m.keySet(); // Needn't be in synchronized block ... synchronized (m) { // Synchronizing on m, not s! Iterator i = s.iterator(); // Must be in synchronized block while (i.hasNext()) foo(i.next()); }
Collections には、不変コレクションを返すことができる 3 種類のメソッドがあります:
1. emptyXxx(): 空の不変コレクション オブジェクトを返します
2.指定されたオブジェクトのみを含むコレクション オブジェクト。
3. unmodifiableXxx(): 指定されたコレクション オブジェクトの不変の
ビューを返します1. disjoint(Collection> c1, Collection> c2) - if 指定された 2 つのコレクションに同一の要素がない場合に true を返します。2. addAll(Collection super T> c, T... a) - 指定されたすべての要素を指定されたコレクションに追加する便利な方法。デモンストレーション: Collections.addAll(flavors, "Peaches 'n Plutonium"、"Rocky Racoon");
3. Comparator
public void testOther() { List<String> list1 = new ArrayList<String>(); List<String> list2 = new ArrayList<String>(); // addAll增加变长参数 Collections.addAll(list1, "大家好", "你好","我也好"); Collections.addAll(list2, "大家好", "a李四","我也好"); // disjoint检查两个Collection是否的交集 boolean b1 = Collections.disjoint(list, list1); boolean b2 = Collections.disjoint(list, list2); System.out.println(b1 + "\t" + b2); // 利用reverseOrder倒序 Collections.sort(list1, Collections.reverseOrder()); System.out.println(list1); }
输出
true false
[我也好, 大家好, 你好]
6. 完整代码
package com.bjpowernode.test; import java.util.*; import org.junit.Before; import org.junit.Test; public class CollectionsTest { private Listlist = new ArrayList (); @Before public void init() { // 准备测试数据 list.add("b张三"); list.add("d孙六"); list.add("a李四"); list.add("e钱七"); list.add("c赵五"); } @Test public void testUnmodifiable() { System.out.println("给定的list:" + list); List unmodList = Collections.unmodifiableList(list); unmodList.add("再加个试试!"); // 抛出:java.lang.UnsupportedOperationException // 这一行不会执行了 System.out.println("新的unmodList:" + unmodList); } @Test public void testSort() { System.out.println("原始顺序:" + list); Collections.reverse(list); System.out.println("reverse后顺序:" + list); Collections.shuffle(list); System.out.println("shuffle后顺序:" + list); Collections.swap(list, 1, 3); System.out.println("swap后顺序:" + list); Collections.sort(list); System.out.println("sort后顺序:" + list); Collections.rotate(list, 1); System.out.println("rotate后顺序:" + list); } @Test public void testSearch() { System.out.println("给定的list:" + list); System.out.println("max:" + Collections.max(list)); System.out.println("min:" + Collections.min(list)); System.out.println("frequency:" + Collections.frequency(list, "a李四")); Collections.replaceAll(list, "a李四", "aa李四"); System.out.println("replaceAll之后:" + list); // 如果binarySearch的对象没有排序的话,搜索结果是不确定的 System.out.println("binarySearch在sort之前:" + Collections.binarySearch(list, "c赵五")); Collections.sort(list); // sort之后,结果出来了 System.out.println("binarySearch在sort之后:" + Collections.binarySearch(list, "c赵五")); Collections.fill(list, "A"); System.out.println("fill:" + list); } @Test public void testOther() { List<String> list1 = new ArrayList<String>(); List<String> list2 = new ArrayList<String>(); // addAll增加变长参数 Collections.addAll(list1, "大家好", "你好","我也好"); Collections.addAll(list2, "大家好", "a李四","我也好"); // disjoint检查两个Collection是否的交集 boolean b1 = Collections.disjoint(list, list1); boolean b2 = Collections.disjoint(list, list2); System.out.println(b1 + "\t" + b2); // 利用reverseOrder倒序 Collections.sort(list1, Collections.reverseOrder()); System.out.println(list1); } }
【相关推荐】
1. Java免费视频教程
2. YMP在线手册
3. 全面解析Java注解
以上がコレクション ツール クラスは、4 つの静的メソッド操作を提供します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。