1. LinkedListの概要
ArrayListコレクションは、要素をクエリする場合は非常に高速ですが、削除する場合は効率が低下します。この制限を克服するには、LinkedListを使用できます。
LinkedListは二重循環リンクリストを維持し、リンクリストの各要素は互いに接続されています。要素を挿入および削除するには、要素間のアプリケーション関係を変更するだけです。
特徴:
- 非常に効率的な追加と削除
- クエリ効率が低い
第二に、LinkedList固有のメソッド
例:
LinkedList<String> list=new LinkedList<>();
list.add("yyy");
list.add("wtc");
list.add("yyy");
//特有的方法
list.addFirst("aaa");//添加到列头
list.addLast("bbb");//添加到列尾
System.out.println(list);
list.removeFirst();//删除列头
list.removeLast();//删除列尾
System.out.println(list);
//寻找某个字符串最后出现的位置
System.out.println("yyy最后出现的位置是"+list.lastIndexOf("yyy"));
//推荐用迭代器去遍历
ListIterator<String> it= list.listIterator();
while (it.hasNext()){
System.out.println(it.next());
}
演算結果:
3.演習
- ArrayListの重複要素を削除する
import java.util.ArrayList;
public class demo_移除arraylist里的重复元素 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("b");
list.add("a");
list.add("b");
list.add("a");
list.add("b");
for(int i=0;i<list.size();i++){
String s=list.get(i);
for(int j=i+1;j<list.size();j++){
String s1=list.get(j);
if(s.equals(s1)){
list.remove(j);
j--;
}
}
}
System.out.println(list);
}
}
演算結果:
- ArrayList刺套ArrayList
import java.util.ArrayList;
public class demo_Arraylist嵌套Arraylist {
public static void main(String[] args) {
ArrayList a1=new ArrayList();
a1.add("小米");
a1.add("小明");
a1.add("小红");
ArrayList a2=new ArrayList();
a2.add("wtc");
a2.add("yyy");
ArrayList<ArrayList> aa=new ArrayList<>();
aa.add(a1);
aa.add(a2);
for(int i=0;i<aa.size();i++){
ArrayList arrayList=aa.get(i);
for(int j=0;j<arrayList.size();j++){
System.out.println(arrayList.get(j));
}
}
}
}
演算結果: