2

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

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

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

4

2 回答 2

3

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

如果myArray是 type ,那将起作用Integer[]。在您的情况下,最简单的方法是遍历每个元素并将其添加到集合中:

Set<Integer> set = new TreeSet<Integer>();
for(int i : myArray) set.add(i);
int i = set.size();
于 2013-05-19T18:48:23.743 回答
1

您可以通过将数组转换为 a来轻松获取所有不同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");
   }
}
于 2013-05-19T18:49:04.567 回答