私の質問の基礎は、はJavaのListオブジェクトを指定しています。ユニークなデータのコレクションを返す最も速い方法は何ですか?JavaのListからユニークなデータを集める最速の方法
より具体的なバージョンでは、2d ArrayList(テーブルのように考える)があり、指定した列のインデックスをループして一意のデータを返す必要があります。
はここに私の現在の設定です:私は1に不明確なセットのサイズと負荷率にプラスワンの初期容量を設定するとき
public Set<Object> getDistinctColumnData(int colIndex) {
//dataByIndex = List<List<Object>>
Set<Object> colDistinctData = new HashSet<Object>(dataByIndex.size() + 1, 1f) ;
for(List<Object> row : dataByIndex) {
colDistinctData.add(row.get(colIndex)) ;
}
return colDistinctData ;
}
私は小さなパフォーマンスのゲインを得た(私の考えでは、それは勝ちましたそれが100%に達するまで成長する必要はありません。元のセットがすでに100%異なっていても(あるいは間違っていますか?)、それは起こらないはずです。
速い方法がありますか?
downvoterは理由を与えるのに気をつけますか? – CrazyPenguin
最初のサイズには '(dataByIndex.size()* 3/2)'を使用し、重複が多いと思わない限り負荷率を残しておきます。 –
あなたのコードはうまくいくようです。他の何かに取り組む。 – Bohemian