リスト、スタック、キュー、セット、マップの定義と一般的なメソッド

ここに画像の説明を挿入

セットする

Javaコンテナーライブラリの2つの主な型

1.各スロットに格納される要素は1つだけです
  Collection:描述所有序列容器的共性的根接口;
  List:以特定的顺序保存一组元素;
  Set:元素不能重复;
  Queue:只允许在容器的一端插入对象,并从另一端移除对象。
2. 2つのオブジェクトが各スロットに保存されます
  Map:键与之相关联的值。

リスト

1.メソッドの概要:
  • add(E e):指定された要素をこのリストの最後に追加します(オプションの操作)。
  • contains(Object o):このリストに指定された要素が含まれている場合、trueを返します。
  • remove(int index):リスト内の指定された位置にある要素を削除します(オプションの操作)。equels()メソッドが使用されます。
  • indexOf(Object o):このリストで指定された要素が最初に出現する位置のインデックスを返します。このリストに要素が含まれていない場合は、-1を返します。equels()メソッドが使用されます。
  • subList(int fromIndex、int toIndex):このリストで指定されたfromIndex(これを含む)とtoIndexの間のビューを返します。
  • containsAll(Collection <?> c):このリストに指定されたコレクションのすべての要素が含まれている場合、trueを返します。
  • retainAll(Collection <?> c):指定されたコレクション(オプションの操作)に含まれるこのリストの要素のみを保持します。結果の動作はequals();に依存します。
  • removeAll(Collection <?> c):指定されたコレクションに含まれるすべての要素をこのリストから削除します(オプションの操作)。結果の動作はequals();に依存します。
  • set(int index、E element):このリストの指定された位置にある要素を、指定された要素に置き換えます(オプションの操作)。
  • isEmpty():このリストに要素がない場合、trueを返します。
  • clear():このリストからすべての要素を削除します(オプションの操作);
2. ArrayList:ランダムアクセス要素よりも長くなりますが、リストの中央に要素を挿入したり削除したりするには時間がかかります。
3. LinkList:リストの中央にある低コストの挿入および削除操作により、最適化されたアクセスを提供します。
  • 基本的なListインターフェースを実装
  • getFirst()およびelement()は、リストを削除するのではなく、先頭を返します。Listが空の場合、NoSuchElementExceptionがスローされ、リストが空の場合、peek()メソッドはnullを返します。
  • removeFirst()とremove()はリストの先頭を削除して返し、リストが空の場合はNoSuchElementExceptionをスローし、リストが空の場合はpoll()はnullを返します。
  • removeLast()は、リストの最後の要素を削除して返します。

スタック

1.先入れ先出し(LIFO)のLinkListには、スタックのすべての機能を直接実装するメソッドがあるため、LinkedListをスタックとして直接使用できます。実際の「スタック」により、状況が明確になる場合があります。
	public class Stack<T> {
    
      
    private LinkedList<T> storage = new LinkedList<T>();  
    public void push(T v){
    
     storage.addFirst(v); }  
    public T peek(){
    
     return storage.getFirst(); }  
    public T pop(){
    
     return storage.removeFirst(); }  
    public boolean empty(){
    
     return storage.isEmpty(); }  
    public String toString(){
    
     return storage.toString(); }  
}

キュー

1.キューは典型的な先入れ先出し(FIFO)コンテナーです。つまり、コンテナーの1つのセクションに入れられ、もう一方の端から取り出されます。コンテナーに入れられる順序は、取り出される順序と同じです。
2.メソッドの概要:
* offer(E e) :如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中;
* peek() :检索但不删除此队列的头,如果此队列为空,则返回 null;
* element() :检索,但不删除,这个队列的头,为空会抛出NoSuchElementException; 
* poll() :检索并删除此队列的头,如果此队列为空,则返回 null 。
* remove() 检索并删除此队列的头,为空会抛出NoSuchElementException。
3. PriorityQueue

優先度キューは、次にポップされた要素が最も必要な要素(最高の優先度を持つ)であることを宣言します

セットする

1. HashSet:要素を格納するかなり複雑な方法を使用します。要素を取得する最も速い方法は、ハッシュ関数を使用します。
2. TreeSet:オブジェクトを比較結果の昇順で保存し、赤黒のツリーデータ構造に格納します。
3. LinkedHashSet:追加された順序でオブジェクトを保存します。ハッシュも使用され、要素の挿入順序を維持するためにリンクリストが使用されます。

地図

1.マップは、そのキーのセット、その値はコレクション、またはそのキーと値のペアはセットを返すことができます。keySet()は、このマップに含まれるキーのセットビューを返します。
1. HashMap:最速の検索テクノロジーを提供し、要素を明確な順序で格納しません。
2. TreeMap:比較結果の昇順でオブジェクトキーを保存します。
3. LinkedHashMap:HashMapの検索速度を維持しながら、挿入順にキーを保存します。

イテレータ

1.イテレータはデザインパターンでもあり、オブジェクトであり、動作するときにシーケンス内のオブジェクトを走査して選択します。
2.イテレータの奇妙な制限:
* 使用iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的一个元素;
* 使用next()获得序列中的下一个元素;
* 使用hasNext()检查序列中是否还有元素;
* 使用remove()将迭代器信近返回的元素删除。

おすすめ

転載: blog.csdn.net/Zmd_23/article/details/108554176