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

回答編集履歴

1

分かりづらいと思われる記述を修正

2019/10/04 17:54

投稿

dodox86
dodox86

スコア9380

answer CHANGED
@@ -1,15 +1,15 @@
1
1
  マスキングされたユニークな値を持つテーブルを自力で作成していくしか方法は無いように思います。愚直な例ですが、
2
2
 
3
- 1. 分かり易く処理対象を限定するために、`{meta_key, meta_value}`を1要素とする全データ、N件のテーブル st を作成する。
3
+ 1. 分かり易く処理対象を限定するために、`{meta_key, meta_value}`を1要素とする全データ、N件のテーブル st を初期データとして作成する。
4
- 2. stを対象に、meta_keyの数、つまりN件分の処理を行う。ループカウンターをi とし、1...N 間ループする。
4
+ 2. stを対象に、meta_keyの数、つまりN件分の処理を行う。ループカウンターを i とし、1...N 間ループする。
5
5
  2-1. st[i] の meta_value をもとに、最後の何文字かを `*`でマスクする。これを候補値 rv とする。
6
6
   2-2. 候補値 rv が、テーブルst 内の st[i] 以外の要素に存在しないか確認する。
7
7
  (a) 存在しない場合
8
-   ユニークな値であることが分かったので、st[i] の meta_value を rvにする。
8
+   ユニークな値であることが確定したので、st[i] の meta_value を rvにする。
9
9
    (b) 既に存在する場合
10
- 候補値 rvはユニークではない。 rv を、衝突しないであろう別の値に改変し、rvの値を再生成する。2-2へ戻る。
10
+ 候補値 rvはユニークではないので、衝突しないであろう別の値に改変し、rvの値を再生成する。2-2へ戻る。
11
11
 
12
12
  3. ループ終了。上記1,2で処理済のstの値は、meta_valueがマスキングされたユニークなデータとなる。
13
13
 
14
14
  少なくとも個人的にはロジックだけの問題だと思いますので、コードでの例示は省きます。
15
- また、上記で言うテーブルst のような要素のコレクションに対して、Javaで使いるラムダ式を併用した関数型プログラミングをすればよりスマートに見えるコードが書けるようにも思います。
15
+ また、上記で言うテーブルst のような要素のコレクションに対して、Javaで使いるラムダ式を併用したような関数型プログラミングをすればよりスマートに見えるコードが書けるようにも思います。