重复数组列表对象是否重复存储在原始数组列表中的内容?

时间:2015-05-07 00:23:17

标签: java arraylist duplicates

我使用此代码创建了一个重复的数组

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

2 个答案:

答案 0 :(得分:0)

不,您在新列表中只有相同的对象。

请记住,一个对象可以有多个引用

新的列表中有个引用的副本到您在第一个列表中的相同对象。当您使用第一个列表的方法时,您操纵该特定列表中的引用序列,而不是包含的对象本身。

[编辑:修改草率的措辞。]

答案 1 :(得分:0)

您获得的错误是因为您尝试在ArrayList类型的对象上调用List方法,即使您使用ArrayList构建它也是如此构造函数,它不能隐式转换回ArrayList。只需更改行

即可
List<Games> gameSortList = new ArrayList<Games>(gamesList); 

ArrayList<Games> gameSortList = new ArrayList<Games>(gamesList);