Преобразование между массивом и списком

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Массивы - это широко используемые линейные структуры данных в Java для хранения коллекций данных. Они позволяют произвольный доступ к любому элементу массива с использованием его индекса, так как элементы распределяются в последовательных блоках памяти. С другой стороны, интерфейс List предоставляет способ поддерживать упорядоченную коллекцию данных, и реализуется классами, такими как ArrayList и LinkedList. В этом лабораторном задании мы узнаем, как преобразовать массив в список и наоборот, используя различные методы в Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("ArrayList") subgraph Lab Skills java/for_loop -.-> lab-117399{{"Преобразование между массивом и списком"}} java/arrays -.-> lab-117399{{"Преобразование между массивом и списком"}} java/arrays_methods -.-> lab-117399{{"Преобразование между массивом и списком"}} java/collections_methods -.-> lab-117399{{"Преобразование между массивом и списком"}} java/arraylist -.-> lab-117399{{"Преобразование между массивом и списком"}} end

Преобразование массива в список с использованием метода asList()

Метод asList() класса Arrays можно использовать для преобразования массива в список. Он принимает массив в качестве параметра и возвращает список его элементов. Мы выполним следующие шаги для преобразования массива в список с использованием метода asList():

  • Создать массив строк и массив целых чисел и инициализировать их значениями
  • Использовать метод Arrays.asList() для преобразования массивов в списки
  • Распечатать списки
import java.util.Arrays;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Шаг 1: Преобразование массива в список с использованием метода asList()
        // Создание массива строк
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Создание массива целых чисел
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // Преобразование массивов в списки с использованием метода asList()
        List<String> strList = Arrays.asList(strArr);
        List<Integer> intList = Arrays.asList(intArr);
        // Распечатка списков
        System.out.println("Array to List using asList() Method: ");
        System.out.println(strList);
        System.out.println(intList);
    }
}

Для запуска кода откройте терминал, перейдите в папку проекта и введите следующую команду: javac ArrayToList.java && java ArrayToList

Преобразование массива в список с использованием метода Collections.addAll()

Метод Collections.addAll() можно использовать для добавления всех элементов массива в список. Мы сначала должны создать пустой список, а затем передать существующий массив и новый список в качестве параметров этому методу. Мы выполним следующие шаги для преобразования массива в список с использованием метода Collections.addAll():

  • Создать массив строк и массив целых чисел и инициализировать их значениями
  • Создать пустой список соответствующих типов данных, используя класс ArrayList
  • Использовать метод Collections.addAll() для добавления элементов массивов в списки
  • Распечатать списки
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Шаг 2: Преобразование массива в список с использованием метода Collections.addAll()
        // Создание массива строк
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Создание массива целых чисел
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // Создание пустых списков соответствующих типов данных
        List<String> strList = new ArrayList<String>();
        List<Integer> intList = new ArrayList<Integer>();
        // Использование метода Collections.addAll() для добавления элементов массивов в списки
        Collections.addAll(strList, strArr);
        Collections.addAll(intList, intArr);
        // Распечатка списков
        System.out.println("Array to List using Collections.addAll() Method: ");
        System.out.println(strList);
        System.out.println(intList);
    }
}

Для запуска кода откройте терминал, перейдите в папку проекта и введите следующую команду: javac ArrayToList.java && java ArrayToList

Преобразование массива в список с использованием метода Lists.newArrayList() из Guava

Метод Lists.newArrayList() из библиотеки Guava также можно использовать для преобразования массива в ArrayList. Мы выполним следующие шаги для преобразования массива в список с использованием метода Lists.newArrayList():

  • Создать массив строк и массив целых чисел и инициализировать их значениями
  • Использовать метод Lists.newArrayList() для преобразования массивов в ArrayList
  • Распечатать ArrayList
import com.google.common.collect.Lists;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Шаг 3: Преобразование массива в список с использованием метода Lists.newArrayList() из Guava
        // Создание массива строк
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Создание массива целых чисел
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // Преобразование массивов в ArrayList с использованием метода Lists.newArrayList() из Guava
        List<String> strList = Lists.newArrayList(strArr);
        List<Integer> intList = Lists.newArrayList(intArr);
        // Распечатка ArrayList
        System.out.println("Array to List using Guava's Lists.newArrayList() Method: ");
        System.out.println(strList);
        System.out.println(intList);
    }
}

Для запуска кода откройте терминал, перейдите в папку проекта и введите следующую команду: javac ArrayToList.java && java ArrayToList

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

Мы также можем создать собственный метод для преобразования массива в список. Мы будем использовать метод add() интерфейса List для добавления элементов из массива в список. Мы выполним следующие шаги для создания собственного метода:

  • Написать метод, который принимает массив строк в качестве параметра и возвращает список строк
  • В теле метода создать пустой ArrayList
  • Пройти по массиву и добавить каждый элемент в ArrayList с использованием метода add()
  • Вернуть ArrayList
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    // Шаг 4: Создание собственного метода для преобразования массива в список
    public static List<String> arrayToList(String[] strArr) {
        List<String> strList = new ArrayList<String>();
        for(int i = 0; i <= strArr.length - 1; i++)
            strList.add(strArr[i]);
        return strList;
    }

    public static void main(String[] args) {
        // Создание массива строк
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Преобразование массива в список с использованием нашего собственного метода
        List<String> strList = arrayToList(strArr);
        // Распечатка списка
        System.out.println("Array to List using our own method: ");
        System.out.println(strList);
    }
}

Для запуска кода откройте терминал, перейдите в папку проекта и введите следующую команду: javac ArrayToList.java && java ArrayToList

Преобразование списка в массив с использованием метода toArray()

Метод toArray() можно использовать для преобразования списка в массив. Он принимает массив в качестве параметра и возвращает массив, содержащий элементы списка. Мы выполним следующие шаги для преобразования списка в массив с использованием метода toArray():

  • Создать ArrayList и добавить в него элементы
  • Использовать метод toArray() для преобразования ArrayList в массив
  • Распечатать массив
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Шаг 5: Преобразование списка в массив с использованием метода toArray()
        // Создание ArrayList
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // Преобразование ArrayList в массив с использованием метода toArray()
        String[] strArr = strList.toArray(new String[0]);

        // Распечатка массива
        System.out.println("List to Array using toArray() Method: ");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

Для запуска кода откройте терминал, перейдите в папку проекта и введите следующую команду: javac ArrayToList.java && java ArrayToList

Преобразование списка в массив с использованием метода Iterables.toArray() из Guava

Метод Iterables.toArray() из библиотеки Guava также можно использовать для преобразования списка в массив. Мы выполним следующие шаги для преобразования списка в массив с использованием метода Iterables.toArray():

  • Создать ArrayList и добавить в него элементы
  • Использовать метод Iterables.toArray() для преобразования ArrayList в массив
  • Распечатать массив
import com.google.common.collect.Iterables;
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Шаг 6: Преобразование списка в массив с использованием метода Iterables.toArray() из Guava
        // Создание ArrayList
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // Преобразование ArrayList в массив с использованием метода Iterables.toArray() из Guava
        String[] strArr = Iterables.toArray(strList, String.class);

        // Распечатка массива
        System.out.println("List to Array using Guava's Iterables.toArray() Method: ");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

Для запуска кода откройте терминал, перейдите в папку проекта и введите следующую команду: javac ArrayToList.java && java ArrayToList

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

Мы также можем создать собственный метод для преобразования списка в массив. Мы будем перебирать список и получать каждый элемент с использованием метода get() и добавлять его в массив с использованием индексов массива. Мы выполним следующие шаги для создания собственного метода:

  • Написать метод, который принимает список строк в качестве параметра и возвращает массив строк
  • В теле метода создать пустой массив строк размером, равным размеру списка
  • Перебрать список и добавить каждый элемент в массив с использованием индексов массива
  • Вернуть массив
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static String[] listToArray(List<String> strList) {
        String[] strArr = new String[strList.size()];
        for(int i = 0; i <= strList.size() - 1; i++)
            strArr[i] = strList.get(i);
        return strArr;
    }

    public static void main(String[] args) {
        // Создание собственного метода для преобразования списка в массив
        // Создание ArrayList
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // Преобразование ArrayList в массив с использованием нашего собственного метода
        String[] strArr = listToArray(strList);

        // Распечатка массива
        System.out.println("List to Array using our own method: ");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

Для запуска кода откройте терминал, перейдите в папку проекта и введите следующую команду: javac ArrayToList.java && java ArrayToList

Резюме

В этом практическом занятии мы изучили различные методы преобразования массива в список и обратно в Java. Мы увидели, как можно использовать метод asList() класса Arrays, метод addAll() класса Collections и метод Lists.newArrayList() из библиотеки Guava для преобразования массива в список. Мы также увидели, как можно использовать метод toArray() и метод Iterables.toArray() из библиотеки Guava для преобразования списка в массив. Наконец, мы написали свои собственные методы для выполнения этих преобразований. Понимание различных методов преобразования массивов в списки и наоборот может помочь нам использовать потенциал обоих структур данных и повысить навыки программирования на Java.