Javaへの簡単な導入-リスト


このセッションでは、次のように説明します.
  • ArrayList
  • HashMap
  • HashSet
  • Iterators
  • Conclusion
  • アレイリスト


    以前は配列オブジェクトを論じました.我々はいくつかの配列オブジェクトを作成しました、しかし、我々が議論したかもしれないか、議論しなかった何かは配列オブジェクトの静的サイズです.つまり、いくつかのサイズの配列を作成するときに、n , この要素の総数n サイズの配列を保持することができますn 要素.配列のサイズはサイズ変更できません-初期化後に変更することはできません.
    Javaはこの問題を解決するためにArrayList . 安ArrayList 初期サイズで作成n それが保持している要素の数としての変更.
    使うArrayList 我々はそれからインポートする必要がありますjava.util ASimport java.util.ArrayList そして、我々が今まで使ってきたクラスのどれかのように、そのインスタンスを作成します.
    インスタンスを作成するにはArrayList , 我々にはtype 要素のArrayList と初期値size . このようなインスタンスを作成します.ArrayList<ObjectType> arrayList = new ArrayList<ObjectType>(size);
    ArrayList<Integer> numbers = new ArrayList<Integer>(5);
    ArrayList<String> names = new ArrayList<>();
    
    ArrayList オブジェクトを保存します-私たちが原始的なタイプをそれに渡すことができないということを意味してください.我々はInteger …の代わりにint , Double for double , などに注意してくださいnew ArrayList<>() , the type and size が渡されなかった.それは推測されるでしょう.
    ArrayList はデータ構造(データを格納し、管理する)です.我々はそれを論理的または抽象的に表現することができますADT ), ジャストスペック.
    ADT :
  • 非原始データのデータを格納する
  • リストに要素を追加するadd 方法
  • リストから要素を削除するremove 方法
  • aを返すboolean リストが要素を持っているかどうかcontains 方法
  • 指定したインデックスの要素をget(index) 方法
  • リストの現在のサイズを返しますsize 方法
  • リスト内のすべての要素を削除するclear 方法
  • クラスを作りましょう.ArrayListAverage これはArrayList 配列リストの要素の平均を見つけるために配列の代わりに.
    import java.util.ArrayList;
    
    public class ArrayListAverage {
        public static void main(String[] args) {
            ArrayList<Integer> nums = new ArrayList<>(5);
    
            nums.add(3);
            nums.add(2);
            nums.add(1);
            nums.add(5);
            nums.add(4);
    
            int numSum = nums.get(0) + nums.get(1) + nums.get(2) + nums.get(3) + nums.get(4);
    
            double numAvg = (double)numSum / nums.size();
    
            System.out.println("Sum: " + numSum);
            System.out.println("Average: " + numAvg);
    
            System.out.println("\n\nadd new element and find the sum and average");
    
            nums.add(6);
            numSum += nums.get(5);
    
            numAvg = (double)numSum / nums.size();
    
            System.out.println("New Sum: " + numSum);
            System.out.println("New  Average: " + numAvg);
        }
    }
    
    
    あなたの手を試してくださいcontains , remove and clear メソッド.

    ハッシュマップ

    ArrayList は配列やその他のようなインデックスベースのデータ構造です.があるHashMap の実装ですMap . マップはキー値対アプローチを使用してデータを格納する.これはobject JavaScriptとdictionary Pythonで.
    我々のインスタンスを作成したようにArrayList 保持するデータの種類を渡したクラスで、キーと値の型を渡します.
    import java.util.HashMap;
    
    ...
    
    HashMap<String, String> hmStringKey = new HashMap<>();
    HashMap<Integer, String> hmIntegerKey = new HashMap<>();
    
    ADT
  • 非原始データのデータを格納する
  • マップに要素を追加するput(key, value) 方法
  • aを返すboolean マップが特定のキーか値を持っているかどうかcontainsKey(key) or containsValue(value) 方法
  • リターンboolean マップが他のマップに等しいかどうかequals 方法
  • キーで要素を返しますget(key) 方法
  • aを返すboolean マップが空であるかどうかisEmpty 方法
  • マップ内のすべての要素を削除しますclear 方法
  • マップから要素を削除するremove 方法
  • マップを使用して現在のサイズを返しますsize 方法
  • etc
  • import java.util.HashMap;
    ...
    
    HashMap<String, String> profile = new HashMap<>();
    
    profile.put("fullName", "John Doe");
    profile.put("dob", "1st October, 1976");
    profile.put("job", "Project Manager at DooDev LLC");
    
    System.out.println(profile);
    

    集合


    我々はADTアプローチを使用して記述セットとその操作を容易にする.
  • 非原始データのデータを格納する
  • 重複がない-すべての要素が一意です
  • を使用してadd 方法
  • aを返すboolean setがある要素を持つかどうかcontains 方法
  • リターンboolean 集合がequals 方法
  • aを返すboolean セットが空であるかどうかisEmpty 方法
  • を使用してclear 方法
  • を使用してremove 方法
  • 現在のサイズをsize 方法
  • 集合の実装はHashSet . aのインスタンスを作成しますHashSet として我々はArrayList .
    イテレータメソッドがありますHashSet , ArrayList , etc

    イテレータ


    Iterator コレクションを通じて循環し、要素を取得または削除するオブジェクトです.コレクションクラスはiterator メソッド.の例ArrayList .
    The Iterator ADT
  • hasNext メソッドはboolean 次の要素があるかどうか
  • next メソッドは次の項目を返す
  • remove メソッドは、next 方法)
  • import java.util.ArrayList;
    import java.util.Iterator;
    
    ...
    
    ArrayList<Integer> list = new ArrayList<>();
    list.add(23);
    list.add(34);
    list.add(7);
    list.add(-18);
    list.add(8);
    list.add(3);
    
    // call the iterator
    Iterator iterator = arrayList.iterator();
    
    while(iterator.hasNext()) {
        System.out.println(iterator.next());
    }
    
    

    結論


    我々が知っている配列は制限を持っています、そして、我々は我々の文書のこの制限をいくらかのハックを回避することができます.ジャバがArrayList データ構造.サイズはダイナミックで使いやすい.

    プロジェクト


  • 文を引数として書き込み、次のマップを返します.
  • 空白文字の数
  • 空白のない文の文字数
  • 文中の単語数

  • 文を引数として受け取るプログラムを書き、それぞれのユニークな文字の数のマップを返します(空白と数字のような非アルファベット文字とアンパサンドを除く).So hello there は以下のキーと値のペアでマップを返します.
  • H : 2
  • E : 3
  • L : 2
  • ...
  • ソース

  • ソロモン
  • dsのマリク
  • Top