是否可以重命名ArrayList?

时间:2014-02-18 13:32:44

标签: java arraylist

我只是想知道是否有办法重命名分配给ArrayList的变量...或者如果我只需要创建另一个,只需使它完全相同。

5 个答案:

答案 0 :(得分:2)

只需使用您想要的名称创建一个新引用,并从旧引用中分配它:

ArrayList original = ...;
ArrayList newList = original;

我应该指出,由于ArrayList是一个引用类型,原始和newList都指向内存中的相同数据。如果将项目添加到original或newList,则会影响两者。它不是创建ArrayList的第二个副本。但是,要理解你的要求有点困难。

如果您正在讨论重构代码以在整个应用程序中重命名变量,那么它取决于您使用的IDE,但任何好的IDE都将具备此功能。

答案 1 :(得分:1)

首先,我想指出的是,'重命名'变量实际上并不是一个与改变“reference”或“identifier”的方式相似的概念。您无法更改变量 identifier (类似于变量的名称),但您可以将变量的值传递给另一个具有不同标识符的变量。

当变量引用Object类的Object或子类(例如ArrayList)时,引用类型变量会保存指示该对象在内存中的位置的数据。因此,将该引用的数据传递给另一个引用只意味着现在有两个Object引用'引用'到内存中的同一个对象。

从技术上讲,如果你想给这个对象一个可以用来稍后识别的名称,可以通过创建一个扩展ArrayList(或任何对象)的自定义类来实现。例如;

public class NamedArrayList extends ArrayList{

    private String listName = "default_name";

    public String getListName(){
        return listName;
    }

    public void setListName(String listName){
        this.listName = listName;
    }
}

或者,您可以创建一个包含ArrayList的Wrapper类以及用于标识它的名称。道歉,如果最后一部分有点偏离主题,但我希望它有所帮助。

答案 2 :(得分:0)

你可以试试这个

List<Double> original =new ArrayList<Double>();
List<Double> copy = new ArrayList<Double>(original);

答案 3 :(得分:0)

在程序运行时,您无法重命名任何变量。

但你可以在开发时重命名它。然后编译并运行。

答案 4 :(得分:-1)

如果您的意思是使用不同的引用重命名,那么

ArrayList newListRef = oldListInstance;
//use newListRef thereafter

如果您想更改某些保留订单的元素,那么 -

ArrayList的动态是动态的。您可以在保留的特定索引和排序中添加和删除元素。所以不需要创建单独的List。如果要更改特定元素,只需将其删除并在该索引处添加新元素。

的API

public E remove(int index)
public void add(int index, E element)