Java-collection-algorithms

提供:Dev Guides
移動先:案内検索

Java-収集アルゴリズム

コレクションフレームワークは、コレクションとマップに適用できるいくつかのアルゴリズムを定義します。

これらのアルゴリズムは、コレクションクラス内の静的メソッドとして定義されます。 いくつかのメソッドは、互換性のない型を比較しようとするときに発生する ClassCastException 、または変更不可能なコレクションを変更しようとするときに発生する UnsupportedOperationException をスローできます。

コレクションフレームワークのアルゴリズムで定義されているメソッドは、次の表にまとめられています-

Sr.No. Method & Description
1

static int binarySearch(List list, Object value, Comparator c)

  • c* に従って順序付けられたリスト内の値を検索します。 リスト内の値の位置を返します。値が見つからない場合は-1を返します。
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)

  • 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)

  • 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)

  • c* を基にしたスレッドセーフコレクションを返します。
27

static List synchronizedList(List list)

リストを基にしたスレッドセーフリストを返します。

28

static Map synchronizedMap(Map m)

  • m* を基にしたスレッドセーフマップを返します。
29

static Set synchronizedSet(Set s)

  • s* を基にしたスレッドセーフセットを返します。
30

static SortedMap synchronizedSortedMap(SortedMap sm)

  • sm* を基にしたスレッドセーフのソート済みセットを返します。
31

static SortedSet synchronizedSortedSet(SortedSet ss)

  • ss* を基にしたスレッドセーフセットを返します。
32

static Collection unmodifiableCollection(Collection c)

  • c* を基にした変更不可能なコレクションを返します。
33

static List unmodifiableList(List list)

リストに連動する変更不可能なリストを返します。

34

static Map unmodifiableMap(Map m)

  • m* を基にした変更不可能なマップを返します。
35

static Set unmodifiableSet(Set s)

  • s* を基にした変更不可能なセットを返します。
36

static SortedMap unmodifiableSortedMap(SortedMap sm)

  • sm* を基にした変更不可能なソート済みマップを返します。
37

static SortedSet unmodifiableSortedSet(SortedSet ss)

  • 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