Javaベースのアレイのコレクションの一般的な面接の質問

1.重複排除

リストの重複除外:

方法:ループの2:車輪の数、リストの長さの数マイナス1を比較するアウターループ;回数は、内側のループは、比較の各ラウンド、比較ラウンドリストの数マイナス現在のラウンドの長さを制御します

以下のために(INT i = 0; iが()はlist.sizeを< - 1; iは++します){

    { - (J INT J =はlist.size-1; J> I)のために 

IF(List.get(J).equals(List.get(I))){

List.remove(J)。

}}}

方法II;

jdk1.8が別個List.stream()を提供した後に();

方法3:

重量に要素のセットを使用します

順不同の集合要素で、要素を繰り返すことはできません

HashSetのセット=新しいHashSetの(一覧); // HashSetの作成操作が再ために行われた場合に、リスト要素を使用して設定

List.clearは(); //元のリストをクリア

List.add(セット); //重複除外の要素がリストに再加入

 

重複排除アレイ:

この方法の一つ

とリストコレクションの実装

INT [] STR = {5,6,6,8,8,7,4}。

一覧<整数>リスト=新しいのArrayList <Integer型>();

以下のために(INT i = 0; I <str.length; iは++){
IF(list.contains(STR [I])!)。

list.add(STR [I])。

}

}

System.out.println(リスト);

方法2:

用HashSet:

セットの設定=新しいHashSetの();

以下のために(INT i = 0; i)は(a.lengthを<; iは++します){

set.add([I])。

}

2.交差します

リストを交差

listA.retainAll(ListBの)

アレイの交差

文字列[] result_insect =交差(ARR1、ARR2)。 

図3に示すように二つの配列を取るように設定して

listA.removeAll(ListBの); //最初の2つのセットの間の差をとること、すなわち共通部分はリスタを除去

listA.addAll(ListBの)は、次にListBのにリスタの残りの部分に添加しました

文字列[] result_union =連合(ARR1、ARR2)。

それはまた、使用中に二つの配列を横断する、HashSetのを設定することができます

 

交差点:配列要素2は、この要素は新しい配列に追加された場合LINKLISTを含む配列2を介して内部、次いでLINKLISTに最初の配列。

 

要約:

1.設定し再利用します

速いのArrayListより挿入2.linklist

 

おすすめ

転載: www.cnblogs.com/testerling/p/11784807.html