How to copy a list to another list in Java?


A List of elements can be copied to another List using multiple ways.

Way #1

Create a List by passing another list as a constructor argument.

List<String> copyOflist = new ArrayList<>(list);

Create a List and use addAll() method to add all the elements of the source list.

Way #2

List<String> copyOfList = new ArrayList<>();
copyOfList.addAll(list);

Way #3

Use Collections.copy() method to copy the contents of source list to destination. Existing elements will be overridden by indexes if any.

Collections.copy(copyOfList, list);

Way #4

Use Streams to create a copy of a list.

List<String> copyOfList = list.stream().collect(Collectors.toList());

Example

Following is the example to explain the creation of copy of List object using multiple ways −

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class CollectionsDemo {
   public static void main(String[] args) {
      List<String> list = Arrays.asList("Zara","Mahnaz","Ayan" );
      System.out.println("Source: " + list);
      List<String> copyOfList1 = new ArrayList<>(list);
      System.out.println("Copy 1: " + copyOfList1);
      List<String> copyOfList2 = new ArrayList<>();
      copyOfList2.addAll(list);
      System.out.println("Copy 2: " + copyOfList2);
      List<String> copyOfList3 = Arrays.asList("Rob","Julie","John" );
      Collections.copy(copyOfList3, list);
      System.out.println("Copy 3: " + copyOfList3);
      List<String> copyOfList4 = list.stream().collect(Collectors.toList());
      System.out.println("Copy 4: " + copyOfList4);
   }
}

Output

This will produce the following result −

Source: [Zara, Mahnaz, Ayan]
Copy 1: [Zara, Mahnaz, Ayan]
Copy 2: [Zara, Mahnaz, Ayan]
Copy 3: [Zara, Mahnaz, Ayan]
Copy 4: [Zara, Mahnaz, Ayan]

Updated on: 21-Oct-2023

23K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements