簡単な分析Java集合とLIstインターフェース


一、集合の概念
1.概要:
集合を学ぶ前に、配列の特徴の一つである配列に固定長さがあり、配列を定義します。データ長が可変の場合、セットが生成されました。Javaセットは動的成長データに対応してコンパイルする時、具体的なデータ量が分かりません。
集合類は容器類ともいう。
2.集合と配列の違い
  • は全部容器で、配列時に固定された長さ、集合時に可変です。
  • 配列に格納されているデータは、すべて基本データタイプ(4種類8種類)のセットで格納されているデータは、参照データタイプ(String、Integer、カスタムデータタイプ)
  • です。
  • のセットでは、基本データタイプに対して、ビット参照データタイプを変換して再記憶する。
  • 3.集合内容、集合の枠組み
  • インターフェース:Collection、Map、Set、Listなど(SetとListがCollectionを継承している)
  • 抽象類:AbstractCollection、AbstractListなど(一部の方法を実現した)
  • 実装クラス:ArayList,Linked List,HashMapなど
  • ローズマリー:Iterator(セットのアクセス反復は、セット内の要素のローズマリーを返す)
  • 二、List集合
    1.概要
    List集合は、順序良く、繰り返し可能な集合であり、各要素は対応する順序インデックスを有する。
    Listは、重複要素を追加することができます。インデックスによって指定された位置にアクセスできる要素です。
    Listセットはデフォルトでは要素の追加順序に従って要素の索引を追加します。
    2.ArayList
    1>概要
    ArayListは、配列に基づいて実現されるListクラスであり、すべてのオプションリスト動作を実現し、nullを含むすべての要素を可能にする。
    2>初期化
    ArayList arrayList=new ArayList()  =>初期容量が10のリストセット
    ArayList<E>arrayList=new ArayList<E>()=>データタイプはEで、初期容量は10です。
    3>主な方法
     bolean add(E e)->指定された要素をリストの最後に追加します。  
    void add(intindex,E element)>>このリストの指定された位置に指定された要素を挿入します。  
    bollan addAll(Collection)<?指定されたセットのIteratorが戻る順に、指定されたセットのすべての要素をリストの最後に追加します。  
    bollan addAll(int index、Collection<?このリストに指定されたセットのすべての要素を挿入し、指定された位置から開始します。
    このリストに指定された要素が含まれている場合、trueに戻ります。
    E get(intindex)>>このリストで指定された位置の要素を返します。 
    E remove(intindex)->リストで指定された位置の要素を削除します。 
    E set(intindex,E element)>>指定された要素を指定の要素で置換します。
    Object[]toAray()>>は正しい順序で(最初から最後の要素まで)このリストのすべての要素を含む配列を返します。
    
    /**
     * @ author: PrincessHug
     * @ date: 2019/2/10, 0:18
     * @ Blog: https://www.cnblogs.com/HelloBigTable/
     */
    public class ArrayListDemo01 {
     public static void main(String[] args) {
     ArrayList<String> arr = new ArrayList<String>();
     arr.add("123");
     System.out.println(arr);
     ArrayList<Person> person = new ArrayList<Person>();
     Person p1 = new Person("Wyh",18);
     Person p2 = new Person("Hunter", 40);
     person.add(p1);
     person.add(p2);
     for (int i=0;i<person.size();i++) {
     System.out.println(person.get(i));
     }
     System.out.println(person.contains(p2));
     person.remove(1);
     person.set(0,p2);
     Person[] persons = new Person[2];
     person.toArray(persons);
     System.out.println(persons[0]);
     System.out.println(persons[1]);
     }
    }
     
    public class Person {
     private String name;
     private int age;
     
     public Person(){}
     
     public Person(String name, int age) {
     this.name = name;
     this.age = age;
     }
     
     public String getName() {
     return name;
     }
     
     public void setName(String name) {
     this.name = name;
     }
     
     public int getAge() {
     return age;
     }
     
     public void setAge(int age) {
     this.age = age;
     }
     
     @Override
     public String toString() {
     return "["+this.name+","+this.age+"]";
     }
    }
    3.List集合エルゴードの4つの方法
  • は、List.size()方法を通じてforサイクルの条件として、同じ配列が
  • を巡回している。
  • .ディエターIterator<Integer>it=arrayList.iterator()によって;whileサイクル、has Nextは判定条件として、next()は集合要素を取得して出力します。
  • 拡張forサイクル
  • jdk 1.8の新しい特性foreach
  • 
    /**
     * @ author: PrincessHug
     * @ date: 2019/2/12, 2:43
     * @ Blog: https://www.cnblogs.com/HelloBigTable/
     */
    public class PrintArrayList {
      public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<>();
        Student s1 = new Student("001", "Wyh", ' ');
        Student s2 = new Student("002", "Fyh", ' ');
        Student s3 = new Student("003", "Zxy", ' ');
        students.add(s1);
        students.add(s2);
        students.add(s3);
     
        System.out.println("  size()    for      :");
        for (int i=0;i<students.size();i++){
          System.out.println(students.get(i));
        }
     
        System.out.println("         :");
        Iterator<Student> iterator = students.iterator();
        while (iterator.hasNext()){
          System.out.print(iterator.next() + "\t");
        }
     
        System.out.println("    for      :");
        for (Student stu:students){
          System.out.println(stu);
        }
        System.out.println("  jdk1.8   forEach    :");
        students.forEach(student -> System.out.println(student));
      }
    }
    4.LinkdList
    1.概説:LinkdListとは、チェーンタイプのデータ構造のことです。
    2.LinkdListとArayListの違い:
    a)チェーンテーブルの要素は任意に増加と削除できますが、クエリの効率はリストに及ばないです。
    b)チェーンテーブルは対象を独立した空間に保管し、各スチュワーデスは次のリンクの索引を保存している。
    構造方法LinkdList<E>linkedList=new LinkdList<E>();
    3.主な方法
    void addFirst(E e)->リストの先頭に指定された要素を挿入します。
    void addLast(E e)->指定された要素をこのリストの最後に追加します。
    E peekFirst()>>検索しますが、このリストの最初の要素は削除されません。このリストが空の場合、nullに戻ります。
    E peekLast()>>検索しますが、このリストの最後の要素は削除されません。このリストが空の場合、nullに戻ります。
    E pollFirst()>>このリストの最初の要素を検索して削除します。このリストが空の場合、nullに戻ります。
    E pop()>>このリストから表示されるスタックの中で最初の要素がイジェクトされます。RemoveFirstに似ています。 
    void_push(E e)->これらの要素をリスト表示のスタックにプッシュします。addFirstに似ている()
    
    /**
     * @ author: PrincessHug
     * @ date: 2019/2/10, 2:12
     * @ Blog: https://www.cnblogs.com/HelloBigTable/
     */
    public class LinkedListDemo {
     public static void main(String[] args) {
     LinkedList<String> linkedList = new LinkedList<>();
     linkedList.addFirst("is");
     linkedList.addFirst("Wyh");
     linkedList.addLast("cool");
     System.out.println(linkedList);
     System.out.println(linkedList.peekFirst());
     System.out.println(linkedList.pollFirst());
     System.out.println(linkedList);
     System.out.println(linkedList.pop());
     System.out.println(linkedList);
     linkedList.push("Wyh is");
     System.out.println(linkedList);
     }
    }
    以上は小编が皆さんに绍介したJava集合とLIstインターフェースの详细な统合で、皆さんのために役に立つことを望んでいます。ここでも私たちのサイトを応援してくれてありがとうございます。