2014-10-21 3 views
-1

Каков способ рассказать, сколько разных слов есть в ArrayList?Как подсчитать разные слова в ArrayList?

Например:

public static ArrayList<String> myArray = new ArrayList<String>(); 
myArray.add("a"); 
myArray.add("b"); 
myArray.add("a"); 
myArray.add("c"); 

И выход будет

there is 3 different word in this array. 
+0

Создайте набор из него, например, 'HashSet '. Затем получите размер набора. У HashSet есть конструктор, который возьмет ваш ArrayList, так что это довольно легко сделать. –

ответ

2

вы можете создать Set<> объект из этого, так как он содержит только уникальные объекты. Таким образом, все дубликаты будут устранены. И размер Set будет количеством разных слов.

Набор может быть создает как

Set<String> mySet = new HashSet<String>(myArray); 
int differentWords = mySet.size(); 

Постарайся делать это.

+0

Спасибо, что работает – Candy

2

Существует несколько способов достижения этой цели. Самый простой из них должен сделать исчерпывающий поиск:

  • Для каждой позиции i в списке, возьмите слово в позиции я
  • Для каждой позиции j больше, чем i, сравнивать слова в позиции i и позиции j
  • Если два слова совпадают, запишите слово в позиции j
  • Как только вы закончите с внешним контуром, проверьте, сколько строк осталось от null. Вот число уникальных слов там

Более продвинутый подход состоит в том, чтобы поместить все строки в набор строк, а затем взять количество элементов набора. Это может быть выполнено в одной строке кода. Проверьте документацию на информацию о HashSe<T>.

1

Вы также можете проверить наличие дубликатов перед добавлением новых элементов

if(!myArray.contains('a')) 
     myArray.add('a'); 
Смежные вопросы