早速質問させていただきました。私は学校のプロジェクトに取り組んでおり、非常に大きなテキスト ファイルを解析する必要があります。これはデータベース クラス用です。アクターは mysql データベースの主キーになるため、ファイルから一意のアクター名を取得する必要があります。私はすでにパーサーを作成しており、うまく機能していますが、その時点で重複を削除するのを忘れていました。そこで、アクターの配列リストを作成するのが最も簡単な方法だと判断しました。(ArrayList ADT を使用) 次に、contain() メソッドを使用して、新しいテキスト ファイルに出力する前に、アクター名が arraylist にあるかどうかを確認します。そうでない場合は、それを arraylist に追加してページに出力します。現在、プログラムの実行速度は非常に遅いです。arraylist の前に、約 5 分かかりました。古いアクター ファイルは、重複を削除せずに 180k でした。現在、30分間実行されており、これまでのところ12kです。
ファイル内のアクターの数がわからないため、arraylist のサイズを空白のままにしましたが、少なくとも 100 万から 200 万です。そのサイズに500万を入れて、後ですべて取得できるかどうかを確認することを考えていました。(最後のarraylistインデックスを確認するだけで、空の場合はスペースが不足しませんでした。)arraylistが常に再倍増してすべてを再コピーしていないため、これにより時間が短縮されますか?これよりも高速な別の方法はありますか?また、完了する前にコンピューターのメモリが不足するのではないかと心配しています。どんなアドバイスも素晴らしいでしょう。
(また、テキスト ファイルに対して 'unique' コマンドを実行しようとしましたが、成功しませんでした。アクター名は 1 行に 1 つずつ出力されます。(1 つの列に) コマンドが間違っているのではないかと考えていました。テキスト ファイルの列から重複を削除するにはどうすればよいでしょうか。 Windows または Linux のコマンド プロンプトで?) ありがとうございます。長い投稿で申し訳ありません。明日は中間試験があり、ストレスを感じ始めています。