Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止将重复项添加到矩阵中_Java_Arraylist - Fatal编程技术网

Java 如何防止将重复项添加到矩阵中

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

我有一个矩阵,它有一组元素和副本 我想在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","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]