回答編集履歴
1
分かりづらいと思われる記述を修正
test
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
1. 分かり易く処理対象を限定するために、`{meta_key, meta_value}`を1要素とする全データ、N件のテーブル st を作成する。
|
5
|
+
1. 分かり易く処理対象を限定するために、`{meta_key, meta_value}`を1要素とする全データ、N件のテーブル st を初期データとして作成する。
|
6
6
|
|
7
|
-
2. stを対象に、meta_keyの数、つまりN件分の処理を行う。ループカウンターをi とし、1...N 間ループする。
|
7
|
+
2. stを対象に、meta_keyの数、つまりN件分の処理を行う。ループカウンターを i として、1...N 間ループする。
|
8
8
|
|
9
9
|
2-1. st[i] の meta_value をもとに、最後の何文字かを `*`でマスクする。これを候補値 rv とする。
|
10
10
|
|
@@ -12,11 +12,11 @@
|
|
12
12
|
|
13
13
|
(a) 存在しない場合
|
14
14
|
|
15
|
-
ユニークな値であることが
|
15
|
+
ユニークな値であることが確定したので、st[i] の meta_value を rvにする。
|
16
16
|
|
17
17
|
(b) 既に存在する場合
|
18
18
|
|
19
|
-
候補値 rvはユニークではない
|
19
|
+
候補値 rvはユニークではないので、衝突しないであろう別の値に改変し、rvの値を再生成する。2-2へ戻る。
|
20
20
|
|
21
21
|
|
22
22
|
|
@@ -26,4 +26,4 @@
|
|
26
26
|
|
27
27
|
少なくとも個人的にはロジックだけの問題だと思いますので、コードでの例示は省きます。
|
28
28
|
|
29
|
-
また、上記で言うテーブルst のような要素のコレクションに対して、Javaで使い
|
29
|
+
また、上記で言うテーブルst のような要素のコレクションに対して、Javaで使い得るラムダ式を併用したような関数型プログラミングをすれば、よりスマートに見えるコードが書けるようにも思います。
|