【发布时间】:2015-07-17 08:46:56
【问题描述】:
我使用此代码创建了一个重复数组
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 中使用
我想要的是这个伪代码:
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
【问题讨论】:
-
您的代码示例制作了 gamesList 的浅表副本并将其分配给 gameSortList。我对不允许“将获取和集合用于原始数组列表”感到有些困惑。想澄清一下吗?
-
我已将数组设为 public class DataBaseGUI extends javax.swing.JFrame {
Games game;ArrayList gamesList = new ArrayList();`关联变量,例如名称流派等..` -
当您尝试使用原始数组列表的获取和设置时,它会给您一个例外吗?编译错误?
-
@MarsAtomic 这实际上不是浅拷贝,而是根据
ArrayList's constructor 的 javadocs 的深层拷贝,这可能是 OP 问题的根源 -
@MitchellCarroll 我没有在 Java Doc 中看到表明他正在制作深拷贝的语言。我的评论是基于这个 SO answer。
标签: java arraylist duplicates