JAva-コレクション(一)--概要、CollectionおよびIteratorインタフェース、遍歴コレクション

16772 ワード

文書ディレクトリ
  • 集合概要
  • CollectionおよびIteratorインタフェース
  • ループ集合
  • コレクションの概要
  • 数の不確定なデータとマッピング関係のあるデータを保存するために、Javaは集合クラス(コンテナクラスとも呼ばれる)を提供する.
  • のすべての集合クラスはjavaにあります.utilパッケージの下.
  • 配列は、基本タイプの値もオブジェクトも保存できますが、セットにはオブジェクトしか保存できません.(実際には2つのオブジェクトの参照変数が保存されています).
  • Javaの集合クラスは主に2つのインタフェースから派生している:CollectionとMap.これらは、集合フレームワークのルートインタフェースです.
  • 私たちは主に4つの集合を話します:Set、List、Queue、Map.この4つの集合において最もよく用いられる実装クラスは,HashSet,TreeSet,ArrayList,ArrayDeque,LinkedList,HashMap,TreeMapなどである.
  • Setは無秩序集合であり、要素を追加する順序を記憶できないため、Set要素は繰り返すことができない.Setコレクション内の要素にアクセスする場合は、要素自体に基づいてのみアクセスできます.
  • Listは配列に似た秩序化された集合であり、要素を追加するたびに順番を覚え、長さが可変である.リストセットの配列にアクセスすると、要素のインデックスに基づいてアクセスできます.
  • Mapの実装クラスは、マッピング関係を持つデータを保存するために使用され、Mapが保存する各データは、科目名と成績、数学-78、国語-88のようなKey-valueペアである.私たちは通常、成績差科目名ではなく科目名で成績を調べるので、key値は繰り返してはいけません.Mapコレクションの要素にアクセスする場合は、key値に基づいてvalueにアクセスできます.

  • CollectionとIteratorインタフェース
  • Collectionインタフェースは、Set、List、Queueインタフェースの親インタフェースである.次に、Collectionインタフェースで定義した方法を示します.
  • boolean add(Object o):集合に要素を追加し、集合オブジェクトが追加要素によって変更された場合、true
  • を返します.
  • boolean addAll(Collection c):指定したコレクションにコレクションcのすべての要素を追加します.
  • void clear():コレクション内のすべての要素
  • をクリア
  • int size():このメソッドは、集合内の要素の個数
  • を返す.
  • Object[]toArray():コレクションを配列に変換します.
  • boolean contains(Object o):このcollectionに指定した要素が含まれている場合はtrue
  • を返します.
  • boolean containsAll(Collection c):指定したcollectionのすべての要素が含まれている場合は、trueを返します.
  • boolean isEmpty():このcollectionが空の場合は、true
  • を返します.
  • boolean remove(Object o):指定された要素oをコレクションから削除します.このコレクションに複数のoが含まれている場合、このメソッドは最初のo
  • のみを削除します.
  • boolean removeAll(Collection c):コレクションcに含まれるすべての要素
  • をコレクションから削除します.
  • Iterator iterator():集合内の要素
  • を巡回するためのiteratorオブジェクトを返します.
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class Demo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            //    
            c.add("sehun");
            c.add("love");
            c.add(777);
            System.out.println("         :"+c.size());
            //    
            boolean b1 = c.remove("love");
            System.out.println("\"love\"      :"+b1);
            //            
            boolean b2 = c.contains("love");
            System.out.println("      \"love\":"+b2);
            c.clear();
            boolean empty = c.isEmpty();
            System.out.println("      :"+empty);
        }
    }
    
    //  3
    "love"true
          "love"falsetrue
    

    巡回集合
  • lambda式で集合
    public class Demo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            c.add("sehun");
            c.add("love");
            c.add(777);
            // Iterable forEach(Consumer action)        
            //                  ,      lambda          
            //Iterable Collection      ,  Collection            
            c.forEach(obj-> System.out.println(obj));
        }
    }
    
  • を巡回する
  • 集合要素をIteratorで巡回
  • Iteratorインタフェースは主にCollectionコレクション内の要素を巡回(反復アクセス)するために使用され、Iteratorオブジェクトは反復器とも呼ばれる.
  • Iteratorインタフェースの方法は次のとおりです.
  • boolean hasNext():要素が反復可能な場合はtrue
  • を返します.
  • Object next():反復の次の要素
  • を返します.
  • void remove():反復器が指すcollectionから反復器が返す最後の要素
  • を除去する.

    public class Demo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            c.add("sehun");
            c.add("love");
            c.add("p");
            //    c      
            Iterator iterator = c.iterator();
            while (iterator.hasNext()){
                //iterator.next()      Object  ,        
                String s = (String)iterator.next();
                System.out.println(s);
                if(s.equals("love")){
                    //   Iterator    Collection     ,Collection       
                    //    Iterator remove()       next()          ;
                    iterator.remove();
                    //     
                    //c.remove(s);
                }
            }
            System.out.println(c);
        }
    }
    //  
    sehun
    love
    p
    [sehun, p]
    
  • forEachサイクルで
    public class Demo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            c.add("sehun");
            c.add("love");
            c.add("p");
            for (Object obj:c) {
                System.out.println(obj);
            }
        }
    }
    
  • を巡る