, у вас есть массив следующим образом:Сколько различных значений внутри массива
int [] myArray = 1,2,3,1,4,2,6,1,5,3,6,1;
Как вы можете вычислить количество различных значений внутри массива = 6?
, у вас есть массив следующим образом:Сколько различных значений внутри массива
int [] myArray = 1,2,3,1,4,2,6,1,5,3,6,1;
Как вы можете вычислить количество различных значений внутри массива = 6?
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();
что, между различными «TreeSet» и «Set», которые используются ниже? – hayonj
@hayonj Не большая разница в вашем случае. Найдите «программирование для интерфейса». –
Вы можете легко получить все различных значения пути преобразования массива в 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");
}
}
какая разница между коллекцией и массивом? – hayonj
В чем разница между .length() и .size()? – hayonj
@hayonj В Java * коллекция * - это все, что наследуется от интерфейса 'Collection
Просто создайте «Set» из него и получите его размер. Вот и все. –