Урок 16

Алгоритмы коллекций


Каркас коллекций определяет несколько алгоритмов, которые могут быть применимы к коллекциям и картам. Эти алгоритмы определены как статические методы в классе Collections. Рассмотрим некоторые из них:

1. Метод sort(List)

Пример 1. Использование метода sort(List)

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SortCollections {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("red");
        list.add("green");
        list.add("blue");
        list.add("yellow");
        System.out.println("Before sorting: " + list);
        Collections.sort(list);
        System.out.println("After sorting: " + list);
        Collections.sort(list, Collections.reverseOrder());
        System.out.println("After  reverse sorting: " + list);
    }
}

2. Метод binarySearch(List)

Пример 2. Использование метода binarySearch(List)

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsExample3 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("red");
        list.add("green");
        list.add("blue");
        list.add("yellow");
        Collections.sort(list);

        System.out.println(list);
        System.out.println("(1) Index: "
                + Collections.binarySearch(list, "red"));
        System.out.println("(2) Index: "
                + Collections.binarySearch(list, "cyan"));
    }
}

3. Методs reverse(List), shuffle(List)

Пример 3. Использование методов reverse(List), shuffle(List)

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsExample1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("red");
        list.add("green");
        list.add("blue");
        list.add("yellow");
        System.out.println("Before reversing: " + list);
        Collections.reverse(list);
        System.out.println("After reversing: " + list);
        Collections.shuffle(list);
        System.out.println("After shuffling: " + list);
    }
}

4. Метод fill(List, Object)

Пример 4. Использование метода fill(List, Object)

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsExample2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("red");
        list.add("green");
        list.add("blue");
        list.add("yellow");
        Collections.fill(list, "black");
        System.out.println(list);
    }
}

5. Методы max(List), min(List)

Пример 5. Использование методов max(List), min(List)

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsExample4 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(2);
        list.add(2);
        list.add(5);
        list.add(8);
        list.add(9);
        System.out.println(Collections.max(list));
        System.out.println(Collections.min(list));
    }
}

6. Метод copy(List, List)

Пример 6. Использование метода copy(List, List)

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CollectionsExample5 {
    public static void main(String[] args) {
        List<Integer> src = Arrays.asList(1, 2, 3);
        List<Integer> dest = Arrays.asList(4, 5, 6, 7);
        Collections.copy(dest, src);
        System.out.println(dest);
    }
}

7. Метод rotate(List, int)

Пример 7. Использование метода rotate(List, int)

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsExample6 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");

        System.out.println("Original List : " + list);

        Collections.rotate(list, 2);
        System.out.println("Rotated List: " + list);

        Collections.rotate(list, -1);
        System.out.println("Rotated List: " + list);
    }
}

8. Метод checkedCollection()

Пример 8. Использование метода checkedCollection()

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class MyCheckedCollection {
    public static void main(String[] a) {
        List myList = new ArrayList();
        myList.add("one");
        myList.add("two");
        myList.add("three");
        myList.add("four");
        Collection chkList =
                Collections.checkedCollection(myList, String.class);
        System.out.println("Checked list content: " + chkList);
        //you can add any type of elements to myList object
        myList.add(10);
        //you cannot add any type of elements to chkList object, doing so
        //throws ClassCastException
        chkList.add(10); //throws ClassCastException
    }
}

9. Метод frequency()

Пример 9. Использование метода frequency()

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;

public class CollectionsExample7 {
    public static void main(String[] args) {
        Collection<String> collection = Arrays.asList("red", "cyan", "red");
        System.out.println(Collections.frequency(collection, "red"));
    }
}


0 comments
Leave your comment: