代码之家  ›  专栏  ›  技术社区  ›  Pronoy999

当列表是另一个列表的副本时,列表项将被自动删除。

  •  -1
  • Pronoy999  · 技术社区  · 8 年前

    我有个单子说 list1 然后我要复制一份 表1 作为 list2 现在,如果我从 表1 然后是来自 小精灵 也将被删除。

    ArrayList<Object> list1=new ArrayList<>();
    //Then I am filling up only list1.
    ArrayList<Object> list2=new ArrayList<>();
    list1=list2;
    
    for(i=0;i<Constants.list1.size();i++)
        Constants.list1.remove(2);
    

    如果我写这个:

    if(Constants.list2.size()==0)
      Toast.makeText(context,"Error",Toast.LENGTH_SHORT).show();
    

    我把祝酒词当成错误了。

    我想知道将一个列表复制到另一个列表是否会使它们指向相同的引用?

    4 回复  |  直到 8 年前
        1
  •  1
  •   ernest_k Petronella    8 年前

    list1 = list2;
    

    list1 list2

    list1= new ArrayList<>(list2);
    

    for(i=0;i < list2.size();i++)
        list1.add(list2.get(i));
    
        2
  •  0
  •   thmmy95    8 年前

    list1 list2 list1=list2

    ArrayList<Object> list2 = new ArrayList<Object>(list1);
    
        3
  •  0
  •   Gowthaman M manas.abrol    8 年前

    list2.clear();

     ArrayList<Object> list1=new ArrayList<>();
     //Then I am filling up only list1.
     ArrayList<Object> list2=new ArrayList<>();
     list2.clear();    //Before add value clear the arraylist 
     list2.addAll(list1);
    
        4
  •  0
  •   alxgarcia    8 年前

    list1 = list2; 
    

    list1 = (ArrayList<Object>)list2.clone();