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

时间:2018-04-19 05:44:49

标签: 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","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));

                    }

            }

      }

6 个答案:

答案 0 :(得分:1)

您可以使用JWT方法在添加项目之前验证项目是否存在于列表中。

如果此列表包含指定的元素,则java.util.ArrayList.contains(Object)方法返回true。

contains()

答案 1 :(得分:0)

您可以使用contains方法:

if(!listName.contains(sal[i]))
                listName.add(sal[i]);

输出

val
sa
de
dal

(适用!listName.contains(SAL [I]))

如果项目已在列表中并使用!否定条件,则

包含将返回。

答案 2 :(得分:0)

Set<String> set = new HashSet<String>(listName);

System.out.println("Set values .....");
for (String temp : set) System.out.println(temp);

答案 3 :(得分:0)

使用Hashset删除重复项

Set<String> noDupSet = new HashSet<>(Arrays.asList(new String[] {"val1","val2","val1"}));

答案 4 :(得分:0)

您可以使用 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());  
  }  

它将显示Ravi,Vijay和Ajay作为输出。注意Ravi添加了两次,但只添加了一次,因为 HashSet仅包含唯一元素。

如果要在 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);
        }
    }
}

答案 5 :(得分:0)

首先将您的数组转换为hashSet.Which将删除重复项。

接下来将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);
}

O / P:

HashSet-
[de, val, sa, dal]
ArrayList-
[de, val, sa, dal]