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

回答編集履歴

4

誤植修正

2016/01/24 05:23

投稿

shanxia
shanxia

スコア1040

answer CHANGED
@@ -16,5 +16,5 @@
16
16
  C.put(B.get(i), A.get(i));
17
17
  }
18
18
  ```
19
- LinkedHashMapを使うのは、後から利用するときに、キーがList<String>だと検索しづらいから、要素を保たせています。
19
+ LinkedHashMapを使うのは、後から利用するときに、キーがList<String>だと検索しづらいから、要素番号を保たせています。
20
20
 

3

LinkedHashMapへ変更

2016/01/24 05:23

投稿

shanxia
shanxia

スコア1040

answer CHANGED
@@ -11,8 +11,10 @@
11
11
 
12
12
  追加質問ですが、AとBの要素の順序が、そのまま対応付いているならば、下記の様にしてはいかがでしょうか。
13
13
  ```java
14
- Map<List<String>,Integer> C = new HashMap<>();
14
+ Map<List<String>,Integer> C = new LinkedHashMap<>();
15
15
  for (int i = 0; i < A.size(); i++) {
16
16
  C.put(B.get(i), A.get(i));
17
17
  }
18
18
  ```
19
+ LinkedHashMapを使うのは、後から利用するときに、キーがList<String>だと検索しづらいから、要素数を保たせています。
20
+

2

追加質問に対しての追記。

2016/01/24 05:22

投稿

shanxia
shanxia

スコア1040

answer CHANGED
@@ -3,8 +3,16 @@
3
3
  ```java
4
4
  Map<Integer, List<String>> C = new HashMap<>();
5
5
  for (int i = 0; i < A.size(); i++) {
6
- C.put(A.get(i), C.get(i));
6
+ C.put(A.get(i), B.get(i));
7
7
  }
8
8
  ```
9
9
  こんな感じではいかがでしょうか?
10
- 「Aが1の時は、Bのこの値」といった条件があるならば、put前にAの値を取り出して、Bの値を検索すれば良いと思います。
10
+ 「Aが1の時は、Bのこの値」といった条件があるならば、put前にAの値を取り出して、Bの値を検索すれば良いと思います。
11
+
12
+ 追加質問ですが、AとBの要素の順序が、そのまま対応付いているならば、下記の様にしてはいかがでしょうか。
13
+ ```java
14
+ Map<List<String>,Integer> C = new HashMap<>();
15
+ for (int i = 0; i < A.size(); i++) {
16
+ C.put(B.get(i), A.get(i));
17
+ }
18
+ ```

1

変数名の変更

2016/01/24 05:20

投稿

shanxia
shanxia

スコア1040

answer CHANGED
@@ -1,9 +1,9 @@
1
1
  AとBの要素数が違っていた場合にどうするのか未定ですが。
2
2
 
3
3
  ```java
4
- Map<Integer, List<String>> m = new HashMap<>();
4
+ Map<Integer, List<String>> C = new HashMap<>();
5
5
  for (int i = 0; i < A.size(); i++) {
6
- m.put(A.get(i), B.get(i));
6
+ C.put(A.get(i), C.get(i));
7
7
  }
8
8
  ```
9
9
  こんな感じではいかがでしょうか?