如何克隆ArrayList并在Java中克隆其项目?
例如,我有:
ArrayList<Dog> dogs = getDogs();
ArrayList<Dog> clonedList = ....something to do with dogs....
Run Code Online (Sandbox Code Playgroud)
我希望那些物品clonedList与狗列表中的物品不同.
我有一个ArrayList,我想完全复制它.我假设有人花了一些时间使其正确,我尽可能使用实用程序类.很自然地,我最终得到了Collections一个包含复制方法的类.
假设我有以下内容:
List<String> a = new ArrayList<String>();
a.add("a");
a.add("b");
a.add("c");
List<String> b = new ArrayList<String>(a.size());
Collections.copy(b,a);
Run Code Online (Sandbox Code Playgroud)
这失败了,因为基本上它认为b不够大a.是的,我知道b它的大小为0,但它现在应该足够大,不应该吗?如果我必须先填补b,那么Collections.copy()在我的脑海中就会成为一个完全没用的功能.所以,除了编写一个复制函数(我现在要做的)之外,还有一种正确的方法吗?
我可以根据java 8中另一个数组列表中的元素过滤数组列表吗?整个故事是我从oracle电子商务套件应用程序中获取了活跃员工的列表
**EmpID**
00123
003456
023299
Run Code Online (Sandbox Code Playgroud)
我有一个单独的文件,其中包含文件名为EmpID.jpeg的照片
**FileName**
00123.jpeg
003456.jpeg
023299.jpeg
Run Code Online (Sandbox Code Playgroud)
现在我的目的是比较列表,过滤提供我照片的员工和他们没有给我的照片.
private ArrayList<String> _IDsFromFile;
private ArrayList<String> _IDsFromImage;
---
---
public void compareAndCopy(String fileName){
}
Run Code Online (Sandbox Code Playgroud) 我有两个列表(listA和listB),我希望它们是独立的。因此,我可以将一个元素添加到listB,而无需修改listA的元素,以保持不变。
已尝试收集listB = Collections.unmodifiableCollection(listA);
ArrayList<String> listA = new ArrayList<>();
listA.add("alex");
listA.add("brian");
listA.add("charles");
ArrayList<String> listB = new ArrayList<>();
listB = listA;
listB.add("williams");
System.out.println(listA);
Run Code Online (Sandbox Code Playgroud)
执行:[alex,brian,查尔斯,威廉斯]
当我运行它时,我只想显示这些
运行:[alex,brian,charles]
(不带“ williams”)