我有一个包含许多整数的数组。现在我想打印不同的这些整数的数量。
如果我有int[] arr = {1,1,1,2,3,4,5,5};
我想打印这样的内容:Sum=5
。由于数组中有5个不同的整数。
我该怎么做?
答案 0 :(得分:2)
使用Java 8流的简单解决方案看起来像这样
int[] arr = {1, 1, 1, 2, 3, 4, 5, 5};
long count = Arrays.stream(arr).distinct().count();
System.out.format("Sum=%d\n", count);
你问题中数组的结果是5。
答案 1 :(得分:1)
您可能正在寻找没有重复的计数。简单的答案是使用Set
In [176]: a = np.random.rand(2000,3000)
In [177]: b = np.random.rand(2000)
In [178]: %timeit np.array([np.multiply(a[x],b[x]) for x in range(a.shape[0])])
10 loops, best of 3: 118 ms per loop
In [179]: %timeit a * b[:,None]
10 loops, best of 3: 63.8 ms per loop
In [180]: %timeit np.multiply(a,b[:,None])
10 loops, best of 3: 64 ms per loop