Java 如何防止将重复项添加到矩阵中
我有一个矩阵,它有一组元素和副本 我想在ArrayList中添加没有重复元素的项Java 如何防止将重复项添加到矩阵中,java,arraylist,Java,Arraylist,我有一个矩阵,它有一组元素和副本 我想在ArrayList中添加没有重复元素的项 package window1; import java.util.ArrayList; public class Mine { public static void main(String[] args) { ArrayList<String> listName = new ArrayList<>(); String sal[]={"val","sa
package window1;
import java.util.ArrayList;
public class Mine {
public static void main(String[] args) {
ArrayList<String> listName = new ArrayList<>();
String sal[]={"val","sa","de","dal","val","sa","de"};
for(int i =0;i<sal.length;i++){
listName.add(sal[i]);
}
for(int j=0;j<listName.size();j++){
System.out.println(listName.get(j));
}
}
}
包窗口1;
导入java.util.ArrayList;
公共级矿山{
公共静态void main(字符串[]args){
ArrayList listName=新的ArrayList();
字符串sal[]={“val”、“sa”、“de”、“dal”、“val”、“sa”、“de”};
对于(int i=0;i,您可以使用contains()
如果此列表包含指定的元素,则该方法返回true
package window1;
import java.util.ArrayList;
public class Mine {
private ArrayList<String> listName = new ArrayList<>();
private String sal[]={"val","sa","de","dal","val","sa","de"};
public static void main(String[] args) {
for(int i =0;i<sal.length;i++)
{
if(!listname.contains(sal[i])) // If the element does not exist...
listName.add(sal[i]); // Add him
}
for(int j=0;j<listName.size();j++) System.out.println(listName.get(j));
}
}
包窗口1;
导入java.util.ArrayList;
公共级矿山{
private ArrayList listName=new ArrayList();
私有字符串sal[]={“val”、“sa”、“de”、“dal”、“val”、“sa”、“de”};
公共静态void main(字符串[]args){
对于(int i=0;i您可以使用contains方法:
if(!listName.contains(sal[i]))
listName.add(sal[i]);
输出
val
sa
de
dal
(!listName.contains(sal[i]))
contains将返回列表中已存在的项并使用否定条件的!
。Set Set=new HashSet(listName);
Set<String> set = new HashSet<String>(listName);
System.out.println("Set values .....");
for (String temp : set) System.out.println(temp);
System.out.println(“设置值…”);
用于(字符串温度:设置)系统输出打印项次(温度);
使用Hashset删除重复项
Set<String> noDupSet = new HashSet<>(Arrays.asList(new String[] {"val1","val2","val1"}));
Set nodupper=newhashset(Arrays.asList(新字符串[]{“val1”、“val2”、“val1”);
您可以使用HashSet而不是ArrayList。示例:
HashSet<String> set=new HashSet<String>();
set.add("Ravi");
set.add("Vijay");
set.add("Ravi");
set.add("Ajay");
//Traversing elements
Iterator<String> itr=set.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
HashSet=newhashset();
集合。添加(“Ravi”);
集合。添加(“Vijay”);
集合。添加(“Ravi”);
集合。添加(“Ajay”);
//遍历元素
迭代器itr=set.Iterator();
而(itr.hasNext()){
System.out.println(itr.next());
}
它将显示Ravi、Vijay和Ajay作为输出。请注意,Ravi添加了两次,但只添加了一次,因为哈希集仅包含唯一元素。
或
如果要在ArrayList中添加唯一元素,则需要先在HashSet中添加项,然后才能在ArrayList中添加其项,如下所示:
import java.util.ArrayList;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> listName = new ArrayList<String>();
HashSet<String> newListName = new HashSet<String>();
String sal[]={"val","sa","de","dal","val","sa","de"};
// add unique items in HashSet(newListName)
for(int i=0; i<sal.length; i++){
newListName.add(sal[i]);
}
// add items of HashSet into ArrayList(listName)
for(String s: newListName) {
listName.add(s);
}
// display ArrayList(listName)
for(String s: listName) {
System.out.println(s);
}
}
}
import java.util.ArrayList;
导入java.util.HashSet;
公共班机{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
ArrayList listName=新的ArrayList();
HashSet newListName=新HashSet();
字符串sal[]={“val”、“sa”、“de”、“dal”、“val”、“sa”、“de”};
//在HashSet(newListName)中添加唯一项
对于(inti=0;i首先将数组转换为hashSet。这将删除重复项
接下来,将哈希集转换为ArrayList。(所需的数据结构集合)
检查下面的代码
public static void main(String[] args)
{
String sal[]={"val","sa","de","dal","val","sa","de"};
HashSet<String> ss = new HashSet(Arrays.asList(sal));
System.out.println("HashSet-");
System.out.println(ss);
ArrayList<String> asl= new ArrayList<String>(ss);
System.out.println("ArrayList-");
System.out.println(asl);
}
您可以使用HashSet
,这样可以避免重复此问题已在此处得到解答,谢谢您开发的所有解决方案都很好,但使用HashSet对我来说更准确、更有效,尤其是当您在Android Studio中使用它在BaseAdapter上对其进行过滤时
HashSet-
[de, val, sa, dal]
ArrayList-
[de, val, sa, dal]