ホームページ Java &#&チュートリアル Javaリストの使用例を詳しく解説

Javaリストの使用例を詳しく解説

Dec 12, 2016 pm 02:49 PM

|--リスト: 要素は順番に並んでおり (必要に応じて削除できます。順序が崩れることはありません)、要素は繰り返すことができます (添え字 1 に 3 があってもよく、また、下付き文字 2 に 3 を指定します) このため、コレクション システムにはインデックスがあります
|-- ArrayList: 基礎となるデータ構造は配列構造を使用します (配列の長さは可変で、50% 拡張できます) (クエリは高速ですが追加と削除が遅いという特徴があります) スレッドは同期されません
|-- LinkedList: 基礎となるデータ構造はリンク リスト構造です (遅いクエリと高速な追加と削除が特徴です)
|-- Vector: 基礎となるデータ構造は配列データ構造です スレッド同期 (配列の長さは可変で 100% 拡張) (クエリも追加と削除も非常に遅いため、ArrayList に置き換えられます)

List: 固有のメソッド、コーナーマークを操作できるメソッドはすべてこのシステム固有です

Add

1

2

boolean add(int index, E element)

boolean addAll(index,Collection)

ログイン後にコピー

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public static void List_add(){

     ArrayList a1 = new ArrayList();

     a1.add("java");

     a1.add("php");//List集合中的元素可以重复

    a1.add(".net");

     System.out.println("原集合:"+a1);

     a1.add(1, "Flash");

     a1.add(0, "ps");   

     System.out.println(a1);

 

    ArrayList a2 = new ArrayList();

    a2.add("javascript");

    a2.add("3dMax");

    a2.add("IBM");

 

    a1.addAll(0, a2);

    System.out.println(a1);

}

ログイン後にコピー

指定された位置の要素を削除する

1

boolean remove(int index)

ログイン後にコピー

1

2

3

4

5

6

7

8

9

10

public static void List_remove(){

     ArrayList a1 = new ArrayList();

     a1.add("javascript");

     a1.add("php");

     a1.add("flash");

     System.out.println("原集合:"+a1);

 

     a1.remove(0);

     System.out.println(a1);

}

ログイン後にコピー

指定されたインデックスを持つ要素を変更する set(intindex, E element) 変更された要素を返す


1

2

3

4

5

6

7

8

9

10

public static void List_set() {

     ArrayList a1 = new ArrayList();

     a1.add("javascript");

     a1.add("php");

     a1.add(".net");

     System.out.println("原集合:"+a1);

 

     a1.set(1, "falsh");

     System.out.println(a1);

}

ログイン後にコピー

Check

1

2

get(int index)   返回列表中指定位置的元素

subList(int fromIndex, int toIndex)    返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分元素。

ログイン後にコピー

1

2

3

4

5

6

7

8

9

10

public static void List_get() {

     ArrayList a1 = new ArrayList();

     a1.add("java");

     a1.add("php");

     a1.add("flash");

 

     System.out.println(a1.get(0));//获取指定角标的元素,有了该方法就可以遍历该集合中的所有元素

 

     System.out.println(a1.subList(1, 3));//获取集合中某一部分的元素,包含头不包含尾

}

ログイン後にコピー

リスト コレクションの Iterator: ListIterator (Iterator のサブインターフェイスです)

注:
反復中、コレクション オブジェクトのメソッドを介してコレクション内の要素を操作することはできません
ConcurrentModificationException (同時実行例外) が発生するためです
したがって、 iterator を使用する場合、要素は iterator メソッドを使用してのみ作成できます
Iterator メソッドには制限があるため、要素の判定、削除、削除のみが可能です
追加、変更などの他の操作が必要な場合は、 ListIterator のサブインターフェイスを使用します
このインターフェイスは、List コレクションの listIterator メソッドを通じてのみ取得できます

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

public class ListIteratorDemo {

     public static void main(String[] args) {

         ArrayList a1 = new ArrayList();

         a1.add("java01");

         a1.add("java02");

         a1.add("java03");

         a1.add("java04");

 

         System.out.println("原集合是:"+a1);

 

      /*在迭代过程中准备添加或者删除元素

      Iterator it = al.iterator();

      while (it.hasNext()){

        Object obj = it.next();

 

        if (obj.equals("java02"))

        //al.add("java008");//会出现并发异常,因为迭代器正在操作集合,不能再用集合的方法操作集合了

        it.remove();//将java02的引用从集合中删除了

        System.out.println("obj:"+obj);

        }

        */   

    //只有List的listIterator有增,删,改,查这些功能,因为只有List有索引

       ListIterator li = a1.listIterator();

          while (li.hasNext()){

          if(li.next().equals("java02"))

          //li.add("java009");

          li.set("java006");

        }  

    }

}

ログイン後にコピー

Vector: Enumeration は Vector の独自の抽出メソッドであり、イテレーターと非常によく似ています (実際、列挙と反復は同じ) であり、 iterator

1

2

3

4

5

6

7

8

9

10

11

12

13

public class VectorDemo {

     public static void main(String[] args) {

         Vector v = new Vector();

         v.add("java01");

         v.add("java02");

         v.add("java03");

         v.add("java04");

 

         for(Enumeration en = v.elements();en.hasMoreElements();){

            System.out.println(en.nextElement());

        }

    }

}

ログイン後にコピー

LinkedList:

特別なメソッド:

addFirst(); 末尾に要素を追加

getLast();要素は削除されませんが、要素は削除されません。コレクションに要素がない場合は、NoSuchElementException が発生します

removeFirst(); 要素を取得しますが、削除します。コレクションに要素がない場合、NoSuchElementException が発生します

JDK1.6 では、代替メソッド

offerFirst();

peekLast(); は要素を取得しません。削除されました。コレクションに要素が無い場合はnullが返されます

pollFirst();pollLast(); 要素は取得されますが、要素は削除されます。コレクションに要素が存在しない場合は null が返されます

1

2

3

4

5

6

7

8

9

10

11

12

13

public class LinkedListDemo {

     public static void main(String[] args) {

         LinkedList link = new LinkedList();

         link.add("java01");

         link.add("java02");

         link.add("java03");

         link.add("java04");

 

         while(!link.isEmpty()){

            System.out.println((link.removeLast()));

        }

    }

}

ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? 会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? Apr 19, 2025 pm 04:51 PM

一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? 名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? Apr 19, 2025 pm 11:30 PM

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? Apr 19, 2025 pm 06:21 PM

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? Apr 19, 2025 pm 11:42 PM

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Apr 19, 2025 pm 11:45 PM

intellijideaultimatiateバージョンを使用してスプリングを開始します...

Javaオブジェクトを配列に安全に変換する方法は? Javaオブジェクトを配列に安全に変換する方法は? Apr 19, 2025 pm 11:33 PM

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? Apr 19, 2025 pm 11:27 PM

eコマースプラットフォーム上のSKUおよびSPUテーブルの設計の詳細な説明この記事では、eコマースプラットフォームでのSKUとSPUのデータベース設計の問題、特にユーザー定義の販売を扱う方法について説明します。

Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Apr 19, 2025 pm 11:36 PM

Redisキャッシュソリューションは、製品ランキングリストの要件をどのように実現しますか?開発プロセス中に、多くの場合、ランキングの要件に対処する必要があります。

See all articles