Java 9日目


インターフェイス

  • javaはマルチ継承をサポートしていないため、インタフェースを用いてマルチ継承(実装)
  • を実現する.
  • は、他のクラスを作成する際の基本フレームワークを提供し、異なるクラス間の各ロールを担当する抽象クラスと非数値
  • も提供します.
  • インタフェースは抽象メソッドと定数(java 8からインスタンスメソッド、静的メソッドを含む)
  • のみを含む.

    インタフェースの作成

    접근제어자 interface 인터페이스명{
    	public static final 타입 상수명 =;
    
    	public abstract 메소드명(매개변수1, 매개변수2..);
    }
  • インタフェースのすべてのフィールドはpublic static final、
  • でなければなりません.
  • インタフェースのすべての方法は、共通の要約である必要があります.
  • インタフェース実装

    class 클래스이름 implements 인터페이스명 {
    
    }
  • Javaを同時に継承および実装するには、
  • を使用します.
    class 클래스이름 extends 부모클래스명 implements 인터페이스명 {
    }
  • 複数のインタフェースを実装するには、
  • を参照してください.
    class 클래스이름 implements 인터페이스명, 인터페이스..{
    }

    インスタンスメソッド

  • クラスで作成された一般的なメソッド
  • インタフェースを使用してデフォルトのキーワードを作成
  • 集合フレームワーク(非常に重要)🔥🔥🔥🔥🔥)

  • クラスのセット
  • は、メモリ内の様々なデータを簡単に効率的に処理できる標準化された方法を提供します.
  • データ構造クラスの集合
  • 資料構造とは何ですか.
  • データ構造、効率的なデータ管理
  • コードでデータを効率的に処理するために、
  • はデータの特性に基づいてシステムの構造化を行った.
    アルゴリズムとは?
  • 問題を解決するためのステップおよび方法
  • は、任意の問題に対して所望の出力を得るために圧力を加えるためにプログラム可能な
  • である.

    1.Listインタフェース

  • シーケンスデータセット、反復可能
  • Vector, ArrayList, LinkedList, Stack, Queue
  • 1)Vectorクラス

  • Javaの配列は固定長
  • を用いる.
  • 動的長さを使用して複数のデータ型を格納
  • 配列および円形整数インデックスは、
  • にアクセス可能である.
  • は同期であり、一度に1つのねじベクトルしか呼び出せない方法
    Vector<タイプ>参照変数=新しいVector(要素の数);
  • メソッド説明addElement()要素removeAllElements()を追加すると、保存されているすべての要素の削除size()要素のカウント戻り容量()を変更し、現在のベクトルの格納可能サイズget()インデックスで格納されている値でセット()インデックスで格納されている値を返します.

    2)ArrayListクラス

  • 動的長さを使用して複数のデータ型を格納
  • 配列および円形整数インデックスは、
  • にアクセス可能である.
  • 非同期、マルチスレッド
  • をサポート
    ArrayList<タイプ>参照変数=new ArrayList()
    メソッド説明add()要素追加remove()このインデックスを使用して要素削除size()要素のカウント戻り容量()を変更し、現在のArrayListに格納可能なサイズセット()インデックスで格納されている値

    3)LinkedListクラス

  • 各ノードには、1行のデータとポインタがあります.
    -ノード:
  • 、データ(値)とポインタ(アドレス)を含む
  • ArrayListと比較して、
  • のデータの増加または削除速度が速い
  • インデックスがないため、特定の要素へのアクセス速度は
  • より遅い.
  • のナビゲーションやソートを頻繁に行う場合は、配列を使用することをお勧めします.大量のデータを追加/削除する場合は、リンクリストを使用することをお勧めします.
  • 例)

    import java.util.LinkedList;
    
    public class LinkedList1 {
        public static void main(String[] args) {
            LinkedList<String> linkedList = new LinkedList<>();
            linkedList.add("김사과");
            linkedList.add("반하나");
            linkedList.add("오렌지");
            linkedList.add("이메론");
            linkedList.add("배애리");
            System.out.println(linkedList);
            System.out.println(linkedList.peek()); // 맨 앞에 있는 자료 뽑기
            System.out.println(linkedList.poll());
            System.out.println(linkedList);
            linkedList.remove("오렌지");
            System.out.println(linkedList);
        }
    }

    4) Stack


    Stack stack = new Stack();
  • 実施後入先出(LIFO)データ構造のクラス
  • は、一端にのみデータを挿入および削除できるデータ構造
  • である.
    メソッド説明push()挿入オブジェクトpop()削除オブジェクトpeek()前回のデータ戻り検索()戻りデータ順序を返す

    例)

    import java.util.Stack;
    
    public class Stack1 {
        public static void main(String[] args) {
            Stack<Integer> stack = new Stack<>();
            System.out.println(stack.hashCode());
            stack.push(40);
            stack.push(100);
            stack.push(80);
            stack.push(50);
            stack.push(20);
            System.out.println(stack);
            System.out.println(stack.peek());
            System.out.println(stack);
            System.out.println(stack.pop());
            System.out.println(stack);
            System.out.println(stack.search(40)); // 4번째에 있다.
        }
    }

    5) Queue


    Queue queue = new LinkedList();

  • FIFOリソース構造で使用する方法の定義

  • キューの一端がフロントエンドで、削除のみが実行されます

  • 反対側を接尾辞として指定し、挿入のみを実行

  • 主にコンピュータバッファに使用

  • Queueインタフェースを実装する代表クラスはLinkedListである.
    メソッドの説明()オブジェクト追加ポーリング()最初のデータを返し、削除peek()を初期化して最初のデータ削除()値を返してclear()queueを削除する
  • 👉🏻 次の授業で説明する

    2.Setインタフェース

  • シーケンシャルデータセットなし、重複データを許可しない
  • HashSet, TreeSet
  • 3.Mapインタフェース

  • キーと値のペアからなるデータセットは、順序がなく、繰り返しは許されないが、値は
  • を繰り返すことができる.
  • HashMap, TreeMap, HashTable, Properties