我使用此代码创建了一个重复的数组
List<Games> gameSortList = new ArrayList<Games>(gamesList);
我对这个概念很陌生,并不知道它是如何工作的。我使用这个重复的数组列表来排序原始而不编辑它。但是,新的数组列表不允许我使用原始数组列表的任何获取和集合。我甚至宣布它是对的吗?
这是重复的声明
private void BtnAscActionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getActionCommand().equals("⇑")) {
List<Games> gameSortList = new ArrayList<Games>(gamesList);
int newSmall = 9999999 ;
int smallIndex = 0;
switch (RadSelection){
case "index":
while (gameSortList.size() != 0) {
for (int i = 0; i < gameSortList.size(); i++) {
// if (gameSortList.) {
gameSortList.getDev();
// }
}
}
break;
case "Meta":
break;
case "Personal":
break;
}
}
}
.getdev
是用于Games
gamesList
类的方法之一
我想要的是这个psudo代码:
Make Duplicate array list
smallnum = 99999;
smallIndex = 0
until ( GetSizeOfDuplicate = 0){
for ( i > GetSizeOfDuplicate , i ++)
If Duplicate.getRank < small num{
smallnum = Duplicate.getRank
smallIndex = i }
print Duplicate.getRank(smallIndex )
delete Duplicate.getRank(smallIndex )
smallnum = 99999;
}loop
答案 0 :(得分:0)
不,您在新列表中只有相同的对象。
请记住,一个对象可以有多个引用。
新的列表中有个引用的副本到您在第一个列表中的相同对象。当您使用第一个列表的方法时,您操纵该特定列表中的引用序列,而不是包含的对象本身。
[编辑:修改草率的措辞。]
答案 1 :(得分:0)
您获得的错误是因为您尝试在ArrayList
类型的对象上调用List
方法,即使您使用ArrayList
构建它也是如此构造函数,它不能隐式转换回ArrayList
。只需更改行
List<Games> gameSortList = new ArrayList<Games>(gamesList);
到
ArrayList<Games> gameSortList = new ArrayList<Games>(gamesList);