在android中,如何将一个字符串arraylist值添加到另一个整数arraylist中,而不删除重复项

在android中,如何将一个字符串arraylist值添加到另一个整数arraylist中,而不删除重复项,android,android-emulator,Android,Android Emulator,我正在处理一个字符串arraylist值另一个整数arraylist,我想复制,但我尝试使用下面的代码,但它没有复制所有值…错误提示我在哪里 ShootAndCropActivity.class: public class ShootAndCropActivity extends Activity { /** Called when the activity is first created. */ static Vector<Integer> genrated4=new Vec

我正在处理一个字符串arraylist值另一个整数arraylist,我想复制,但我尝试使用下面的代码,但它没有复制所有值…错误提示我在哪里

ShootAndCropActivity.class:

public class ShootAndCropActivity extends Activity  {

/** Called when the activity is first created. */
static Vector<Integer> genrated4=new Vector<Integer>();
static ArrayList<String> genratednew=new ArrayList<String>();
static ArrayList<String> multimeaning=new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    multimeaning.add("radha");
    multimeaning.add("swathi");
    multimeaning.add("sudha");
    multimeaning.add("sai");
    multimeaning.add("jyothi");
    multimeaning.add("radha");

    Random random4 = new Random();        
    for (int i4 = 0; i4<multimeaning.size(); i4++){ 
        int randomNumber4 = random4.nextInt(multimeaning.size());
        String mn1=String.valueOf(multimeaning.get(randomNumber4));

        if(!genratednew.contains(mn1)) {
            genratednew.add(mn1);
            genrated4.add(randomNumber4);
        }
     }
 }
 }
公共类ShootAndCropActivity扩展了活动{
/**在首次创建活动时调用*/
静态向量genrated4=新向量();
静态ArrayList genratednew=新ArrayList();
静态ArrayList multimeans=新ArrayList();
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
多重含义。添加(“radha”);
多重含义。添加(“swathi”);
多重含义。添加(“sudha”);
多重含义。添加(“sai”);
多重含义。添加(“jyothi”);
多重含义。添加(“radha”);
随机数4=新随机数();

对于(int i4=0;i4您可以使用Set。Set是项的唯一集合。没有重复项。您可以使用以下命令删除arraylist中的重复项。然后进行相应的复制

static ArrayList<String> multimeaning=new ArrayList<String>();
Set<String> hs = new LinkedHashSet<String>();
// maintains insertion order and will have unique collection of items
hs.addAll(multimeaning);
multimeaning.clear();
multimeaning.addAll(hs); 
static ArrayList multimeans=new ArrayList();
Set hs=新LinkedHashSet();
//维护插入顺序,并具有唯一的项目集合
hs.addAll(多重含义);
多重意义;
多重意义。addAll(hs);

您希望一切都井然有序,只想跳过重复的值,然后不要使用
随机

只需替换以下代码

Random random4 = new Random();        
for (int i4 = 0; i4<multimeaning.size(); i4++){ 
    int randomNumber4 = random4.nextInt(multimeaning.size());
    String mn1=String.valueOf(multimeaning.get(randomNumber4));

    if(!genratednew.contains(mn1)) {
        genratednew.add(mn1);
        genrated4.add(randomNumber4);
    }
 }
Random random4=新的Random();

对于(inti4=0;i4thankou。如果我们将数据添加到hasset中,意味着时间元素顺序将改变,对吗?但我希望相同order@radha相同的顺序在哪个顺序的意义上?如果我理解正确,它是随机生成的order@radha使用linkedhashset保持插入顺序。在我的例子中,在Multimeans arralist中,我添加元素的顺序是什么在genrated4 arralist中的顺序也是一样的,比如[radha、swathi、sudha---]@radha使用linkedhashset它保持插入顺序和唯一性如果你想保持顺序,那么你为什么要使用
Random
?好的,我也要随机操作,我只是不想更改数组列表的第一个位置值,保留所有位置我需要选择随机方式,因为我在这里做问答游戏,我已经知道ans了,所以我要添加这些ans在arraylist的第一个位置,在所有选项中,我每次都需要显示随机答案你的权利。我只是在addin answer to genratednew array和每次复制之后洗牌了multimening array。现在开始工作了
for (int i4 = 0; i4<multimeaning.size(); i4++){ 
    String mn1=String.valueOf(multimeaning.get(i4));

    if(!genratednew.contains(mn1)) {
        genratednew.add(mn1);
        genrated4.add(i4);
    }
 }