Рубрики

Программа для преобразования списка в карту в Java

Список является дочерним интерфейсом Collection. Это упорядоченная коллекция объектов, в которой могут храниться повторяющиеся значения. Поскольку List сохраняет порядок вставки, он позволяет позиционный доступ и вставку элементов. Интерфейс списка реализован классами ArrayList , LinkedList , Vector и Stack .

Интерфейс java.util.Map представляет собой сопоставление между ключом и значением. Интерфейс Map не является подтипом интерфейса Collection . Следовательно, он немного отличается от остальных типов коллекций.

Пример:

Input: List : [1="1", 2="2", 3="3"]
Output: Map : {1=1, 2=2, 3=3}

Input: List : [1="Geeks", 2="for", 3="Geeks"]
Output: Map : {1=Geeks, 2=for, 3=Geeks}

Ниже приведены различные способы преобразования списка в карту в Java. Для этого предполагается, что каждый элемент списка имеет идентификатор, который будет использоваться в качестве ключа в результирующей карте.

  1. Использование по объекту списка:

    Подходить:

    1. Получить список для преобразования в карту
    2. Создать пустую карту
    3. Перебирайте элементы в списке и добавляйте каждый из них на карту.
    4. Вернуть сформированную карту

    // Java программа для конвертации списка в карту
    // с помощью метода Object

      

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Map;

    import java.util.HashMap;

      
    // создать список

    class Student {

      

        // id будет действовать как ключ

        private Integer id;

      

        // имя будет действовать как значение

        private String name;

      

        // создаем курсор для справки

        public Student(Integer id, String name)

        {

      

            // присваиваем значение id и имени

            this.id = id;

            this.name = name;

        }

      

        // возвращаем приватную переменную id

        public Integer getId()

        {

            return id;

        }

      

        // возвращаем имя приватной переменной

        public String getName()

        {

            return name;

        }

    }

      
    // основной класс и метод

    public class GFG {

      

        // Основной драйвер

        public static void main(String[] args)

        {

      

            // создать список

            List<Student>

                lt = new ArrayList<Student>();

      

            // добавляем члена списка

            lt.add(new Student(1, "Geeks"));

            lt.add(new Student(2, "For"));

            lt.add(new Student(3, "Geeks"));

      

            // создать карту с помощью

            // Object (stu) метод

            // создаем объект класса Map

            Map<Integer, String> map = new HashMap<>();

      

            // помещаем каждый список значений в Map

            for (Student stu : lt) {

                map.put(stu.getId(), stu.getName());

            }

      

            // распечатать карту

            System.out.println("Map  : " + map);

        }

    }

    Выход:

    Map  : {1=Geeks, 2=For, 3=Geeks}
    
  2. Использование метода Collectors.toMap (). Этот метод включает создание списка объектов учащихся и использует Collectors.toMap () для преобразования его в карту.
    Подходить:
    1. Получить список для преобразования в карту
    2. Преобразовать список в поток с помощью метода List.stream ()
    3. Создать карту с помощью метода Collectors.toMap ()
    4. Соберите сформированную Карту, используя метод stream.collect ()
    5. Вернуть сформированную карту

    // Java программа для конвертации списка в карту
    // с помощью метода Collectors.toMap ()

      

    import java.util.ArrayList;

    import java.util.LinkedHashMap;

    import java.util.List;

    import java.util.stream.Collectors;

      
    // создать список

    class Student {

      

        // id будет действовать как ключ

        private Integer id;

      

        // имя будет действовать как значение

        private String name;

      

        // создаем курсор для справки

        public Student(Integer id, String name)

        {

      

            // присваиваем значение id и имени

            this.id = id;

            this.name = name;

        }

      

        // возвращаем приватную переменную id

        public Integer getId()

        {

            return id;

        }

      

        // возвращаем имя приватной переменной

        public String getName()

        {

            return name;

        }

    }

      
    // основной класс и метод

    public class GFG {

      

        // Основной драйвер

        public static void main(String[] args)

        {

      

            // создать список

            List<Student> lt = new ArrayList<>();

      

            // добавляем члена списка

            lt.add(new Student(1, "Geeks"));

            lt.add(new Student(2, "For"));

            lt.add(new Student(3, "Geeks"));

      

            // создать карту с помощью

            // Collectors.toMap () метод

            LinkedHashMap<Integer, String>

                map = lt.stream()

                          .collect(

                              Collectors

                                  .toMap(

                                      Student::getId,

                                      Student::getName,

                                      (x, y)

                                          -> x + ", " + y,

                                      LinkedHashMap::new));

      

            // распечатать карту

            map.forEach(

                (x, y) -> System.out.println(x + "=" + y));

        }

    }

    Выход:

    1=Geeks
    2=For
    3=Geeks
    
  3. Создание MultiMap с использованием Collectors.groupingBy ():

    Подходить:

    1. Получить список для преобразования в карту
    2. Преобразовать список в поток с помощью метода List.stream ()
    3. Создать карту с помощью метода Collectors.groupingBy ()
    4. Соберите сформированную Карту, используя метод stream.collect ()
    5. Вернуть сформированную карту

    // Java программа для конвертации списка в карту
    // с помощью метода Collectors.groupingBy ()

      

    import java.util.*;

    import java.util.stream.Collectors;

      
    // создать список

    class Student {

      

        // id будет действовать как ключ

        private Integer id;

      

        // имя будет действовать как значение

        private String name;

      

        // создаем курсор для справки

        public Student(Integer id, String name)

        {

      

            // присваиваем значение id и имени

            this.id = id;

            this.name = name;

        }

      

        // возвращаем приватную переменную id

        public Integer getId()

        {

            return id;

        }

      

        // возвращаем имя приватной переменной

        public String getName()

        {

            return name;

        }

    }

      
    // основной класс и метод

    public class GFG {

      

        // Основной драйвер

        public static void main(String[] args)

        {

      

            // создать список

            List<Student> lt = new ArrayList<Student>();

      

            // добавляем члена списка

            lt.add(new Student(1, "Geeks"));

            lt.add(new Student(1, "For"));

            lt.add(new Student(2, "Geeks"));

            lt.add(new Student(2, "GeeksForGeeks"));

      

            // создать карту с помощью

            // Object (stu) метод

            // создаем объект класса Multi Map

      

            // создать мультикарту и сохранить значение списка

            Map<Integer, List<String> >

                multimap = lt

                               .stream()

                               .collect(

                                   Collectors

                                       .groupingBy(

                                           Student::getId,

                                           Collectors

                                               .mapping(

                                                   Student::getName,

                                                   Collectors

                                                       .toList())));

      

            // распечатать мультикарту

            System.out.println("MultiMap = " + multimap);

        }

    }

    Выход:

    MultiMap = {1=[Geeks, For], 2=[Geeks, GeeksForGeeks]}
    

Рекомендуемые посты:

Программа для преобразования списка в карту в Java

0.00 (0%) 0 votes