1. まず、List
① コレクション (JDK1.2 バージョンで登場したコレクションフレームワーク)
② リスト: 順序付けされており、要素は繰り返し可能であるため、コレクションシステムはインデックスを持ちます。
よく使われるのは、このインターフェースを実装する ArrayList クラスと LinkedList クラスです
③ Arraylist: 基礎となるデータ構造は配列構造を使用します
特徴: クエリ速度は非常に速いですが、追加と削除はわずかに遅くなります。スレッドが同期していません
LinkedList: 基礎となる層はリンク リスト データ構造を使用します。
特徴: 追加と削除の速度は非常に速く、クエリはわずかに遅くなります。
ベクター: (JDK1.0 バージョンで登場) 最下層は配列データ構造とスレッド同期です。 ArrayList に置き換えられました。 (使用されなくなりました)
2. リストの 2 つの走査メソッド:
public class Demo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); System.out.println("........第一种遍历方式:for遍历......"); for (Object li : list) { System.out.println(li); } System.out.println("........第二种遍历方式:ListIterator迭代遍历......"); ListIterator<String> it = list.listIterator(); while (it.hasNext()) { Object obj = it.next(); System.out.println(obj); } } }
レンダリング:
3. LinkList を使用してスタックまたはキューのデータ構造をシミュレートします。つまり: スタック: 先入れ先出し、キュー: 先入れ先出し
class Duilie{ private LinkedList<Object> link; Duilie(){ link = new LinkedList<Object>(); } public void myAdd(Object obj){ link.addFirst(obj); } public Object myGet(){ return link.removeLast();//先进先出---若要改成先进后出,将removelast()改成removeFirst() } public boolean isNull(){ return link.isEmpty(); } } public class Demo2 { public static void main(String[] args) { Duilie dl = new Duilie(); dl.myAdd("java01"); dl.myAdd("java02"); dl.myAdd("java03"); dl.myAdd("java04"); while(!dl.isNull()){ System.out.println(dl.myGet()); } } }
レンダリング:
上記は先入れ先出しに変更したい場合、以上がこの記事の全内容です。気に入っていただければ幸いです。
Java でのリスト コレクションとその走査の詳細な説明については、PHP 中国語 Web サイトに注目してください。