facebook twitter hatena line email

「Android/配列」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(java.util.ConcurrentModificationExceptionが起こる場合)
 
(同じ利用者による、間の2版が非表示)
行1: 行1:
 +
[[java/連想配列]] [ショートカット]
 +
 
==iterator==
 
==iterator==
 
  ArrayList<String> animals = new ArrayList<String>();
 
  ArrayList<String> animals = new ArrayList<String>();
行9: 行11:
 
  }
 
  }
 
  Log.i("test", "count=" + animals.size()); // 3
 
  Log.i("test", "count=" + animals.size()); // 3
 +
 +
==java.util.ConcurrentModificationExceptionが起こる場合==
 +
配列ループ中に中のデータを1つ削除した場合などにおこる
 +
for (String name : names) {
 +
    if (name == (String) tempname) {
 +
        names.remove(name);
 +
    }
 +
}
 +
以下のように対応する
 +
for (String name : names) {
 +
    if (name == (String) tempname) {
 +
        names.remove(name);
 +
        break;
 +
    }
 +
}

2018年12月14日 (金) 12:49時点における最新版

java/連想配列 [ショートカット]

iterator

ArrayList<String> animals = new ArrayList<String>();
animals.add("ねこ");
animals.add("いぬ");
animals.add("ぞう");
Iterator<String> i = animals.iterator();
while(i.hasNext()) {
    Log.i("test", (String)i.next());
}
Log.i("test", "count=" + animals.size()); // 3

java.util.ConcurrentModificationExceptionが起こる場合

配列ループ中に中のデータを1つ削除した場合などにおこる

for (String name : names) {
    if (name == (String) tempname) {
        names.remove(name);
    }
}

以下のように対応する

for (String name : names) {
    if (name == (String) tempname) {
        names.remove(name);
        break;
    }
}