2013-05-07 103 views
1

我是新来的机器人..一个arraylist到另一个arraylist?

我正在应对一个字符串arraylist值到另一个字符串arraylist,我想复制出重复。请任何一个可以帮助我...

非常感谢..

public class Videoplayer extends Activity { 
private GridView girGridView; 
public static String hs = ""; 
public static ArrayList<String> Array = new ArrayList<String>(); 
public static ArrayList<String> resim_list=new ArrayList<String>(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_videoplayer); 
    Bundle bundle = getIntent().getExtras(); 
    ArrayList<String> Array = bundle.getStringArrayList("string-array"); 
    GridViewConfig.addImageUrls(); 
    System.out.println("String Video"+ Array); 
    girGridView=(GridView) findViewById(R.id.gridView1_bir); 
    girGridView.setAdapter(new ImageAdapter(this)); 
    girGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> arg0, View view, int position,long arg3) { 
        Toast.makeText(getApplicationContext(), GridViewConfig.getResim_list().get(position), Toast.LENGTH_SHORT).show();        
        } 
      }); 
} 
    public static class GridViewConfig { 
    public static ArrayList<String> resim_list=new ArrayList<String>(); 
    public static ArrayList<String> getResim_list() { 
      return resim_list; 
    } 
    public void setResim_list(ArrayList<String> resim_list) { 
      GridViewConfig.resim_list = resim_list; 
    } 
    public static void addImageUrls() { 
      Set<String> hs = new LinkedHashSet<String>(Array);// set of unique elments 
     // LinkedHashSet maintains insertion order 
      resim_list.addAll(hs); 
    System.out.println("NEW RESIM_LIST" + resim_list); 

这怎么办???

+0

检查下面的答案 – Raghunandan 2013-05-07 10:28:29

回答

0
public static ArrayList<String> Array = new ArrayList<String>(); 

    public static ArrayList<String> resim_list=new ArrayList<String>(); 

在你的活动

Array = bundle.getStringArrayList("string-array"); 
    // already Array is initalized. no need to initialize again 
    GridViewConfig.addImageUrls();// call the add method 

GridViewConfig类

public static class GridViewConfig { 
    public static ArrayList<String> resim_list=new ArrayList<String>(); 

    public static ArrayList<String> getResim_list() { 
     return resim_list; 
    } 

    public void setResim_list(ArrayList<String> resim_list) { 
     GridViewConfig.resim_list = resim_list; 
    } 

    public static void addImageUrls() { 
     Set<String> hs = new LinkedHashSet<String>(Array);// set of unique elments 
     // LinkedHashSet maintains insertion order 
     resim_list.addAll(hs); 
     for(int i=0;i<resim_list.size();i++) 
     { 
      System.out.println("NEW RESIM_LIST" + resim_list.get(i)); 

     } 
    } 
} 

编辑:

声明此之前的onCreate()

public ArrayList<String> Array = new ArrayList<String>(); 
public ArrayList<String> resim_list=new ArrayList<String>(); 

在你的onCreate()

Array = bundle.getStringArrayList("string-array"); 
addImageUrls(); 

然后定义在活动类addImageUrls如下

 public void addImageUrls() { 
     ArrayList<String> resim_list=new ArrayList<String>(); 
     Set<String> hs = new LinkedHashSet<String>(Array);// set of unique elments 
     // LinkedHashSet maintains insertion order 
     resim_list.addAll(hs); 
     for(int i=0;i<resim_list.size();i++) 
     { 
      System.out.println("NEW RESIM_LIST" + resim_list.get(i)); 
     } 
     } 

阵列被声明用类范围。不需要使用静态修改。如果你打算在另一个类中使用它,则使用意图传递它。

-1

您可以使用addAll方法。

//without duplicated, use Set 
Set setTemp = new HashSet(Array); 
resim_list.addAll(setTemp); 
+0

采购订单请求“我想复制没有重复” – Frank 2013-05-07 07:24:28

1

使用,集的集合类

Set<String> set = new HashSet<String>(Array); 
resim_list.addAll(set); 

现在这里Set将从您ArrayList删除所有重复值。

+0

如果我打印它显示空这样resim_list [] – 2013-05-07 07:33:20

+0

如何打印它?给我看一个代码。 – user370305 2013-05-07 07:33:49

+0

Set set = new HashSet(Array); \t \t resim_list.addAll(set); \t \t System.out.println(“RESIM_LIST”+ resim_list); – 2013-05-07 07:36:17

0

可以使原来的数组列表
类一{

public static ArrayList<String> Array in class One . 
} 

并希望在任何其他的类此数组列表时,根本就

class Two { 
      ArrayList<String> Array2 = One.Array; 
} 
0

要确保你没有得到任何如果它包含“resim_list”中的元素,则可以遍历“resim_list”并检查“Array”

for(String item: resim_list){ 
    if(Array.contains(item)) 
    { 
     Array.remove(item); 
    }  
} 

然后你可以在其他两个答案中使用代码。

Set set = new HashSet(Array); 
resim_list.addAll(set); 

而且你不应该有任何重复。

相关问题