teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コメントと質問集生を受けて追記

2016/01/24 05:05

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -14,4 +14,9 @@
14
14
  for(int i = 0; i < a.size(); i++){
15
15
  map.put(a.get(i), b.get(i));
16
16
  }
17
- ```
17
+ ```
18
+
19
+ ---
20
+
21
+ keyとなるIntegerに重複があるというのなら、そもそもMapを使うのが適当ではないということになります。
22
+ intとList<String>をメンバに持つクラスを作ったほうがいいのではないでしょうか?

1

補足

2016/01/24 05:05

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -3,6 +3,8 @@
3
3
  2つのListを、順番を維持しながら対応関係を持たせるという意味でしょうか。
4
4
  だとすれば、Mapの実装型の一つ[LinkedHashMap](https://docs.oracle.com/javase/jp/8/docs/api/java/util/LinkedHashMap.html)が有効かと思われます。
5
5
  これは、データをputした順番に並べた状態でマッピングします。
6
+ (ただし、通常のMap同様、keyが重複すると上書きされる。その場合、上書きされる前の順番は変わらない)
7
+ 通常のHashMapでは順番については保証されませんが、このクラスはentrySet()でエントリービューを取得した場合などにもこの挿入順が維持されます。
6
8
  ```Java
7
9
  //このようなリストが先に存在しているとする
8
10
  List<Integer> a;