Javaへの簡単な導入-リスト
15060 ワード
このセッションでは、次のように説明します. ArrayList
HashMap
HashSet
Iterators
Conclusion
以前は配列オブジェクトを論じました.我々はいくつかの配列オブジェクトを作成しました、しかし、我々が議論したかもしれないか、議論しなかった何かは配列オブジェクトの静的サイズです.つまり、いくつかのサイズの配列を作成するときに、
Javaはこの問題を解決するために
使う
インスタンスを作成するには
安
ADT : 非原始データのデータを格納する リストに要素を追加する リストから要素を削除する aを返す 指定したインデックスの要素を リストの現在のサイズを返します リスト内のすべての要素を削除する クラスを作りましょう.
我々のインスタンスを作成したように
非原始データのデータを格納する マップに要素を追加する aを返す リターン キーで要素を返します aを返す マップ内のすべての要素を削除します マップから要素を削除する マップを使用して現在のサイズを返します etc
我々はADTアプローチを使用して記述セットとその操作を容易にする. 非原始データのデータを格納する 重複がない-すべての要素が一意です を使用して aを返す リターン aを返す を使用して を使用して 現在のサイズを 集合の実装は
イテレータメソッドがあります
安
The
我々が知っている配列は制限を持っています、そして、我々は我々の文書のこの制限をいくらかのハックを回避することができます.ジャバが
文を引数として書き込み、次のマップを返します. 空白文字の数 空白のない文の文字数 文中の単語数
文を引数として受け取るプログラムを書き、それぞれのユニークな文字の数のマップを返します(空白と数字のような非アルファベット文字とアンパサンドを除く).So H : 2 E : 3 L : 2 ... ソロモン dsのマリク Top
アレイリスト
以前は配列オブジェクトを論じました.我々はいくつかの配列オブジェクトを作成しました、しかし、我々が議論したかもしれないか、議論しなかった何かは配列オブジェクトの静的サイズです.つまり、いくつかのサイズの配列を作成するときに、
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
方法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<>();
ADTput(key, value)
方法boolean
マップが特定のキーか値を持っているかどうかcontainsKey(key)
or containsValue(value)
方法boolean
マップが他のマップに等しいかどうかequals
方法get(key)
方法boolean
マップが空であるかどうかisEmpty
方法clear
方法remove
方法size
方法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
方法boolean
setがある要素を持つかどうかcontains
方法boolean
集合がequals
方法boolean
セットが空であるかどうかisEmpty
方法clear
方法remove
方法size
方法HashSet
. aのインスタンスを作成しますHashSet
として我々はArrayList
.イテレータメソッドがあります
HashSet
, ArrayList
, etcイテレータ
安
Iterator
コレクションを通じて循環し、要素を取得または削除するオブジェクトです.コレクションクラスはiterator
メソッド.の例ArrayList
.The
Iterator
ADThasNext
メソッドは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
は以下のキーと値のペアでマップを返します.ソース
Reference
この問題について(Javaへの簡単な導入-リスト), 我々は、より多くの情報をここで見つけました https://dev.to/otumianempire/a-simple-introduction-to-java-lists-3a14テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol