Java-collection-algorithms
Java-収集アルゴリズム
コレクションフレームワークは、コレクションとマップに適用できるいくつかのアルゴリズムを定義します。
これらのアルゴリズムは、コレクションクラス内の静的メソッドとして定義されます。 いくつかのメソッドは、互換性のない型を比較しようとするときに発生する ClassCastException 、または変更不可能なコレクションを変更しようとするときに発生する UnsupportedOperationException をスローできます。
コレクションフレームワークのアルゴリズムで定義されているメソッドは、次の表にまとめられています-
Sr.No. | Method & Description |
---|---|
1 |
static int binarySearch(List list, Object value, Comparator c)
|
2 |
static int binarySearch(List list, Object value) リスト内の値を検索します。 リストはソートする必要があります。 リスト内の値の位置を返します。値が見つからない場合は-1を返します。 |
3 |
static void copy(List list1, List list2) list2の要素をlist1にコピーします。 |
4 |
static Enumeration enumeration(Collection c)
|
5 |
static void fill(List list, Object obj) リストの各要素にobjを割り当てます。 |
6 |
static int indexOfSubList(List list, List subList) subListの最初の出現をリストから検索します。 最初の一致のインデックスを返します。一致が見つからない場合は.1を返します。 |
7 |
static int lastIndexOfSubList(List list, List subList) subListの最後の出現をリストから検索します。 最後の一致のインデックスを返します。一致が見つからない場合は.1を返します。 |
8 |
static ArrayList list(Enumeration enum) enumの要素を含むArrayListを返します。 |
9 |
static Object max(Collection c, Comparator comp) compで決定された c の最大要素を返します。 |
10 |
static Object max(Collection c) 自然順序付けで決定された c の最大要素を返します。 コレクションをソートする必要はありません。 |
11 |
static Object min(Collection c, Comparator comp) compで決定された c の最小要素を返します。 コレクションをソートする必要はありません。 |
12 |
static Object min(Collection c) 自然順序付けで決定された c の最小要素を返します。 |
13 |
static List nCopies(int num, Object obj) 不変リストに含まれるobjのコピーをnum個返します。 numはゼロ以上でなければなりません。 |
14 |
static boolean replaceAll(List list, Object old, Object new) リスト内のすべての古いものを新しいものに置き換えます。 少なくとも1つの置換が発生した場合、trueを返します。 そうでない場合はfalseを返します。 |
15 |
static void reverse(List list) リスト内のシーケンスを逆にします。 |
16 |
static Comparator reverseOrder( ) 逆コンパレータを返します。 |
17 |
static void rotate(List list, int n) リストを右に n の位置だけ回転します。 左に回転するには、 n に負の値を使用します。 |
18 |
static void shuffle(List list, Random r)
|
19 |
static void shuffle(List list) リスト内の要素をシャッフル(つまり、ランダム化)します。 |
20 |
static Set singleton(Object obj) 不変のセットとしてobjを返します。 これは、単一のオブジェクトをセットに変換する簡単な方法です。 |
21 |
static List singletonList(Object obj) 不変リストとしてobjを返します。 これは、単一のオブジェクトをリストに変換する簡単な方法です。 |
22 |
static Map singletonMap(Object k, Object v) キー/値ペアk/vを不変マップとして返します。 これは、単一のキー/値ペアをマップに変換する簡単な方法です。 |
23 |
static void sort(List list, Comparator comp) compの決定に従ってリストの要素をソートします。 |
24 |
static void sort(List list) 自然な順序で決定されたリストの要素を並べ替えます。 |
25 |
static void swap(List list, int idx1, int idx2) idx1とidx2で指定されたインデックスでリスト内の要素を交換します。 |
26 |
static Collection synchronizedCollection(Collection c)
|
27 |
static List synchronizedList(List list) リストを基にしたスレッドセーフリストを返します。 |
28 |
static Map synchronizedMap(Map m)
|
29 |
static Set synchronizedSet(Set s)
|
30 |
static SortedMap synchronizedSortedMap(SortedMap sm)
|
31 |
static SortedSet synchronizedSortedSet(SortedSet ss)
|
32 |
static Collection unmodifiableCollection(Collection c)
|
33 |
static List unmodifiableList(List list) リストに連動する変更不可能なリストを返します。 |
34 |
static Map unmodifiableMap(Map m)
|
35 |
static Set unmodifiableSet(Set s)
|
36 |
static SortedMap unmodifiableSortedMap(SortedMap sm)
|
37 |
static SortedSet unmodifiableSortedSet(SortedSet ss)
|
例
以下は、さまざまなアルゴリズムを示す例です。
import java.util.*;
public class AlgorithmsDemo {
public static void main(String args[]) {
//Create and initialize linked list
LinkedList ll = new LinkedList();
ll.add(new Integer(-8));
ll.add(new Integer(20));
ll.add(new Integer(-20));
ll.add(new Integer(8));
//Create a reverse order comparator
Comparator r = Collections.reverseOrder();
//Sort list by using the comparator
Collections.sort(ll, r);
//Get iterator
Iterator li = ll.iterator();
System.out.print("List sorted in reverse: ");
while(li.hasNext()) {
System.out.print(li.next() + " ");
}
System.out.println();
Collections.shuffle(ll);
//display randomized list
li = ll.iterator();
System.out.print("List shuffled: ");
while(li.hasNext()) {
System.out.print(li.next() + " ");
}
System.out.println();
System.out.println("Minimum: " + Collections.min(ll));
System.out.println("Maximum: " + Collections.max(ll));
}
}
これは、次の結果を生成します-
出力
List sorted in reverse: 20 8 -8 -20
List shuffled: 20 -20 8 -8
Minimum: -20
Maximum: 20