📜  Java中两个变量可以引用同一个ArrayList吗?

📅  最后修改于: 2022-05-13 01:55:15.621000             🧑  作者: Mango

Java中两个变量可以引用同一个ArrayList吗?

Java中的 ArrayList 类基本上是一个可调整大小的数组,即它可以根据我们添加到它的值动态地增长和缩小大小。它存在于Java.util 包中。

句法:

ArrayList list = new ArrayList<>();

Java中的ArrayList可以在'new'关键字的帮助下实例化一次,并且可以被各种对象/变量引用。

上图显示了对象'list'如何指向内存中的ArrayList。现在让我们看看如何让另一个对象指向上面实例化的同一个 ArrayList。

语法:两个变量引用同一个 ArrayList:

ArrayList secondList = list;

现在,当将“list”分配给“secondList”时,“secondList”也开始指向内存中的同一个 ArrayList。注意这里只是创建一个新实例。现在,为了更好地理解,让我们深入研究代码并查看一些示例。

下面是问题陈述的实现:

Java
// Java program to show how two objects can
// refer to same ArrayList in Java
  
import java.util.ArrayList;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Creating an ArrayList of Integer type in Java
        ArrayList list = new ArrayList<>();
  
        // Creating a new ArrayList object and making it
        // refer to the first ArrayList(list)
        ArrayList secondList = list;
  
        // Inserting some Integer values to the
        // arrayList using list variable/object
        list.add(17);
        list.add(10);
        list.add(1);
        list.add(33);
        list.add(2);
  
        // ArrayList after insertions : [17, 10, 1, 33, 2]
  
        // Displaying the ArrayList
        System.out.print("ArrayList after insertions: ");
        display(list);
  
        // Modifying the ArrayList using secondList
  
        // Removing element from index 0
        secondList.remove(0);
  
        // Inserting Integer variables
        secondList.add(51);
        secondList.add(99);
  
        // ArrayList after modifications using
        // secondList: [10, 1, 33, 2, 51, 99]
  
        // Displaying the ArrayList
        System.out.print(
            "ArrayList after modifications using secondList: ");
        display(list);
    }
  
    // Function to display an ArrayList
    public static void display(ArrayList list)
    {
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
    }
}


输出
ArrayList after insertions: 17 10 1 33 2 
ArrayList after modifications using secondList: 10 1 33 2 51 99