Попытка использовать Hashmap - PullRequest
0 голосов
/ 20 января 2012

как бы мне увеличивать ключ [i] на 1 в этой ситуации каждый раз, когда я выполняю этот цикл for с тем, как я сейчас его настраиваю, все элементы отображаются только на 1. Я пытаюсь выяснить, какмного раз каждое число встречается.Я пробовал +1 в пустом месте после list.get (i), но опять-таки только отображает каждый элемент на 1. спасибо.

    List<Integer> list = new ArrayList<Integer>();
    HashMap<Integer,Integer> Mode = new HashMap<Integer, Integer>();
    for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr[i].length; j++) {
            list.add(arr[i][j]); 
        }
    }
    System.out.println(list);
    int count = 1;
    for(int i = 0; i < list.size(); i ++) {
        Mode.put(list.get(i), );

Ответы [ 3 ]

3 голосов
/ 20 января 2012

Здесь необходимо указать Key.

for(int i = 0; i < list.size(); i++) {
        int value=list.get(i);
        if(!Mode.containsKey(value))
            Mode.put(value,1);
        else
            Mode.put(value,Mode.get(value)+1);
}
2 голосов
/ 20 января 2012

Согласно вашему комментарию,

for(int i = 0; i < list.size(); i ++) {
   if(Mode.containsKey(list.get(i)) ){
       Integer count = Mode.get(list.get(i));

       Mode.put(list.get(i), ++count);}
   else
       Mode.put(list.get(i), 1);
1 голос
/ 20 января 2012

Если у вас есть возможность, вам может быть проще использовать что-то вроде Multiset из Гуава .

Multiset<Integer> seen = HashMultiset.create();
for (int[] row : arr) {
  for (int elem : row) {
    seen.add(elem); // none of that nasty dealing with the Map
  }
}
// you can look up the count of an element with seen.count(elem)
E mostCommon = null;
int highestCount = 0;
for (Multiset.Entry<Integer> entry : seen.entrySet()) {
  if (entry.getCount() > highestCount) {
    mostCommon = entry.getElement();
    highestCount = entry.getCount();
  }
}
return mostCommon; // this is the most common element
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...