0

Java コードを使用して、テキスト ファイル内のユーザー ID を一意の整数値にマップしたいと考えています。私は約 50MB の大きなテキスト ファイルを持っています。従来の方法でそれを行うには多くの時間がかかります。

     3245 4567
      3245 8726
      4567 8363
      4567 7363
      4567 5267 etc
  After mapping I want my output file to look like
     1 2
     1 3
     2 4
     2 5
     2 5
4

1 に答える 1

2

HashMap<String, Integer>( HashMapを参照)を使用してみてください。整数は、新しい ID に遭遇するたびにインクリメントされるカウンターです。文字通り、ID 文字列から整数へのマッピングがあるため、そこからテキストを処理するのは非常に簡単です。したがって、予想される実行時間は O(n) です。

または、 で指定されたハッシュ コードを使用することもできますString.getHashCode()。約 10000 の ID がある場合、衝突の可能性は 1% しかありません。少なければ確率は激減します。

さらに、順序を維持したいと述べたので、LinkedHashMapは完璧です。それを反復すると、順序は挿入の順序と同じになります。

于 2013-10-21T18:19:32.003 に答える