在android中,如何将一个字符串arraylist值添加到另一个整数arraylist中,而不删除重复项
我正在处理一个字符串arraylist值另一个整数arraylist,我想复制,但我尝试使用下面的代码,但它没有复制所有值…错误提示我在哪里 ShootAndCropActivity.class:在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
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);
}
}