我只是想知道是否有办法重命名分配给ArrayList的变量...或者如果我只需要创建另一个,只需使它完全相同。
答案 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)