数组中有多少个不同的值

时间:2013-05-19 18:45:54

标签: java for-loop foreach distinct

假设你有一个像这样的数组:

int [] myArray = 1,2,3,1,4,2,6,1,5,3,6,1;

如何计算数组中的不同值的数量= 6?

2 个答案:

答案 0 :(得分:3)

<击>

<击>
int i = new TreeSet<Integer>(Arrays.asList(myArray)).size();

<击>

如果myArray的类型为Integer[],则可以使用。在您的情况下,最简单的方法是迭代每个元素并将其添加到集合中:

Set<Integer> set = new TreeSet<Integer>();
for(int i : myArray) set.add(i);
int i = set.size();

答案 1 :(得分:1)

您可以通过将数组转换为Set来轻松获取所有不同的值,这是一个不能包含重复项的集合。

import java.util.TreeSet;
import java.util.Set;
import java.util.Arrays;

public class TestSet { 
   public static void main(String[] args) { 
      int [] myArray = new int[]{ 1,2,3,1,4,2,6,1,5,3,6,1 };
      Set<Integer> s = new TreeSet<>(Arrays.asList(myArray));

      // count distinct values
      System.out.println("Array: " + Arrays.toString(myArray) + " has " 
                         + s.size() + " distinct values");
   }
}