java объединение Как найти общее количество разных элементов в пределах arraylist.



длина двумерного массива java (4)

Вы можете использовать метод lastIndexOf и прокручивать через arraylist.

char count=0;

    for(char i=0; i<araylist.size(); i++){
        if(i == araylist.lastIndexOf(araylist.get(i))){
            count++;
        }
    }

Проверено.

Я сделал несколько поисков, но я не смог найти правильное решение. У меня есть arraylist, хранящий Струны, такие как камедь, носки, OJ, корм для собак ...

У меня возникли проблемы с повторением списка, чтобы определить общее количество разных типов элементов.

то есть.

ArrayList<String> Store = new ArrayList<String>();
    this.Store.add("Gum");
    this.Store.add("Gum");
    this.Store.add("Socks");
    this.Store.add("Candy");

Список состоит из 4 предметов, но только три разных вида предметов (Gum, Sucks, Candy).

Как бы я разработал метод для вычисления 3?


Answer #1

Это выглядит как домашнее задание ... Итак, если вы не понимаете предложенного выше решения HashSet (или не добавляете то же с HashMap), подумайте о том, чтобы сделать что-то вроде этого:

Создать новый ArrayList

Возьмите элемент и проверьте, существует ли он в новом ArrayList

Если он присутствует в новом ArrayList, ничего не делайте. Просто добавьте его.

Сделайте это, пока не проверите последний элемент ArrayList.

Тогда размер нового списка массивов должен быть номером, который вы ищете.


Answer #2

Что сказал Бэш Гурунг , но в коде:

int numUnique = new HashSet<String>(Store).size();

Если то, что вы на самом деле имеете, это StoreItems и нужно пройти через getName() тогда я бы сделал

Set<String> itemNames = new HashSet<String>();
for (StoreItem item : Store)
    itemNames.add(item.getName());
int numUnique = itemNames.size();

Answer #3

Используйте Set ( HashSet ), размер которого даст вам то, что вы ищете.





loops