比较和添加数组元素

时间:2017-02-21 10:46:27

标签: java arrays

我正在尝试从我的数组中删除重复的值,我的android项目是我的数组,

String [] standard = {"7", "7", "8", "7", "8", "7", "6"};

我只想要存储在数组中的唯一值。像{7,8,6}。 我试图通过比较数组的每个元素与自身,然​​后将其添加到数组中来解决这个问题。 我试过谷歌搜索解决这个问题,但我没能解决这个问题。意味着我在某个地方误以为。

如何使用我试图解决的相同方式来解决这个问题。

4 个答案:

答案 0 :(得分:4)

您还没有发布使用数组的原因,但问题的一个解决方案是使用设置数据结构。如下。设置不允许插入重复值。

 Set<String> setExam = new HashSet<>();

  setExam.add("1");
  setExam.add("2");
  setExam.add("1");

您也可以将数组转换为如下设置

Set<T> mySet = new HashSet<T>(Arrays.asList(someArray));

Set仅包含值1和2.它不包含重复值。

答案 1 :(得分:0)

根据此链接link

你可以在java 7中的一行中完成:

String[] unique = new HashSet<String>(Arrays.asList(array)).toArray(new String[0]);

在java 8中越来越简单:

String[] unique = Arrays.stream(array).distinct().toArray(new String[0]);

答案 2 :(得分:0)

HashSet set=new HashSet();   
String [] standard = {"7", "7", "8", "7", "8", "7", "6"};
for(int i=0;i<standard.length;i++){
    set.add(standard[i]);
}
Iterator iter = set.iterator();
while(iter.hasNext()) {
    System.out.println(iter.next());
}

答案 3 :(得分:0)

如果您只想在数组的帮助下这样做,可以使用它。

1) Sort the string array.
2) Use another array to store ans.
3) Store first element of your standard array to new array.
4) Compare from second element of the array, and if two elements are different add that element to ans array.

参见代码。

public static void main(String args[]) throws Exception
{       
    String [] standard = {"7", "7", "8", "7", "8", "7", "6"};

    System.out.println();

    Arrays.sort(standard);

    String Ans[] = new String[100];

    int k = 0;

    Ans[k++] = standard[0];

    for(int i = 1 ; i < standard.length ; i++)
    {
        if(!standard[i-1].equals(standard[i]))
            Ans[k++] = standard[i];
    }

    for(int i = 0 ; i < 100 && Ans[i] != null; i++)
        System.out.print(Ans[i] + " ");
}