Java SE第7章ジェネリックスとコレクション-コレクションクラス-リストインターフェイス、セットインターフェイス、マップインターフェイス

1.リストインターフェイス
説明:
1)このインターフェイスはコレクションインターフェイスを継承します
2)要素は繰り返すことができます
3)要素は要素が追加された順序で配置され、再配置されません
4)
特定の実装クラス位置インデックスのランダム操作サポートするListインターフェイスの一般的に使用されます。ArrayListおよびLinkList。
1. ArrayListは、必要に応じて調整できる動的配列をサポートしています。
動的に再配布可能なObject []配列をカプセル化します。
各ArrayListオブジェクトには、リスト内の要素を格納する配列の容量を表す容量があります。
一般的なメソッド:
ArrayList()
Array List(Collection <?extends E> c)
ArrayList(
intcapacity void sureCapacity(int minCapacity)
void trimToSize()
例:追加、削除、変更してトラバースします。

package ch07;

import java.util.*;

public class ArrayListDemo {
    
    
	public static ArrayList <String>arrayList;
	//初始化链表
	public static void init(){
    
    
		arrayList=new ArrayList<String>(4);
		System.out.println("初始化长度:"+arrayList.size());
		arrayList.add("First");
		arrayList.add("second");
		arrayList.add("third");
		arrayList.add("Forth");
	}
	//打印链表信息
	public static void printInfo(){
    
    
		System.out.println("增加元素后的长度:"+arrayList.size());
		ArrayList <String> arrayList2=new ArrayList<String>(arrayList);
		System.out.println("arrayList:"+arrayList);
		System.out.println("arrayList2"+arrayList2);
	}
	//对链表实现修改、删除操作
	public static void modify(){
    
    
		arrayList.add(1,"insert data");
		System.out.println("增加元素后的长度:"+arrayList.size());
		arrayList.remove("second");
		System.out.println("删除‘second’后的长度:"+arrayList.size());
		arrayList.remove(2);
		System.out.println("删除第3个元素后的长度:"+arrayList.size());
		arrayList.remove("nothing");
		System.out.println("删除‘nothing’后的长度:"+arrayList.size());
	}
	public static void toArray(){
    
    
		Object[]arr=arrayList.toArray();
		for(int i=0;i<arr.length;i++){
    
    
			String str=(String)arr[i];
			System.out.println((i+1)+":"+str);
		}
	}
	public static void main(String[] args) {
    
    
		init();
		printInfo();
		modify();
		toArray();
	}

}

ここに画像の説明を挿入します
2. LinkListの一般的に使用されるメソッドのリスト
LinkedList()
LinkedList(Collection <?extends E> c)
void addFirst(E obj)
E getFirst()
E removeFirst()
void addLast((E ob)
E getLast()
E removeLast( )
3。リストトラバーサルの
例:Iteratorを使用してコレクションをトラバースする機能を示します。

public static void travel(){
    
    
		System.out.println("遍历前的长度:"+arrayList.size());
		Iterator<String>iterator=arrayList.iterator();
		int i=0;
		while(iterator.hasNext()){
    
    
			String str=iterator.next();
			i++;
			System.out.println(str);
			if(i%3==0){
    
    
				iterator.remove();
			}
		}
		System.out.println("删除后的长度:"+arrayList.size());

ここに画像の説明を挿入します
4.for-each

for(string str:arrayList){
    
    
System.out.println(str);
}

2. Setインターフェイス
説明:
1)このインターフェイスはCollectionインターフェイスを継承します
2)繰り返すことができます
3)新しいメソッドは導入されていないため、Setはコレクションですが、動作は異なります。
特定の実装クラス:HashSet、TreeSet
1、 HashSet(ハッシュ)
は高速である可能性があります要素を見つけるには、通常、hashCode()メソッドをオーバーライドする必要があります。
構築メソッドのリスト:
HashSet()
HashSet(Collection <?extends E> c)
HashSet(
intcapacity HashSet(intcapacity、float fill)
例:文字列型に基づいたジェネリックHashSetの使用を示します

public static void main(String[] args) {
    
    
		HashSet<String>hashSet=new HashSet<String>();
		hashSet.add("first");
		hashSet.add("second");
		hashSet.add("third");
		hashSet.add("forth");
		System.out.println(hashSet);
		for(String str:hashSet){
    
    
			System.out.println(str);
		}

ここに画像の説明を挿入します
2. TreeSet(ツリー構造)
オブジェクトは昇順で格納され、アクセスと取得の速度は高速です。
構築メソッドのリスト:
TreeSet()
TreeSet(Collection <?extends E> c)
TreeSet(Comparator <?super E> comp)
TreeSet(SortedSetsortSet)
例:文字列型に基づくジェネリックTreeSetの使用方法を示します

public static void main(String[] args) {
    
    
		TreeSet<String>treeSet=new TreeSet<String>();
		treeSet.add("first");
		treeSet.add("second");
		treeSet.add("third");
		treeSet.add("forth");
		System.out.println(treeSet);
		for(String str:treeSet)
		{
    
    
			System.out.println(str);
		}
	}

ここに画像の説明を挿入します
実行結果から分析します。TreeSet要素は文字列順に並べ替えられて保存されます。これには、そこに配置された要素がソート可能である必要があります。コレクションフレームワークは、並べ替えのための2つの実用的なインターフェイスを提供します。ComparableとComparatorです。ソート可能なクラスは、Comparableインターフェイスを実装する必要があります(通常、ソート基準が指定されていない場合、TreeSetに追加されるオブジェクトはComparableを実装する必要があります)。
3.マップインターフェイス(キーと値のペア)の
説明:
1)繰り返しは許可されていません
。2)MapのentrySet()メソッドは、Map.Entryインターフェイスを実装するオブジェクトのコレクションを返します。 ")は個別に操作できます。
3)Map.Entryメソッドリスト:
K getKey()
V getValue()
int hashCode()
boolean equals(Object obj)
V setValue(V v)
2つのより一般的に使用される実装:HashMap、TreeMap
1、HashMapクラス(ハッシュテーブル)
a 。要素がハッシュマップに追加される順序は、必ずしも反復メソッドによって読み取られる順序ではありません
。b。null値とnullキーが許可されます。
例:文字列に基づく汎用HashMapの使用を示しますおよび整数型。

public static void main(String[] args) {
    
    
		HashMap<String,Integer>hashMap=new HashMap<String,Integer>();
		hashMap.put("Tom", new Integer(23));
		hashMap.put("Rose", new Integer(18));
		hashMap.put("Jane", new Integer(26));
		hashMap.put("Black", new Integer(24));
		hashMap.put("Smith", new Integer(21));
		Set<Map.Entry<String,Integer>>set=hashMap.entrySet();
		for(Map.Entry<String, Integer>entry:set){
    
    
			System.out.println(entry.getKey()+":"+entry.getValue());
		}
		System.out.println("---------------");
		Set<String>KeySet=hashMap.keySet();
		StringBuffer buffer=new StringBuffer("");
		for(String str:KeySet){
    
    
			buffer.append(str+',');
		}
		String str=buffer.substring(0,buffer.length()-1);
		System.out.println(str);
	}

ここに画像の説明を挿入します
2. TreeMap
1)クイック検索
2)要素は昇順で配置されます
構築方法:
TreeMap()
TreeMap(Comparator <?super K> comp)
TreeMap(Map <?extends K、?extends V> m)
TreeMap(SortedMap < K、?extends V> m)
例:文字列と整数に基づく汎用TreeMapの使用を示します。

public static void main(String[] args) {
    
    
		TreeMap<String,Integer>treeMap=new TreeMap<String,Integer>();
		treeMap.put("Tom", new Integer(23));
		treeMap.put("Rose", new Integer(18));
		treeMap.put("Jane", new Integer(26));
		treeMap.put("Black", new Integer(24));
		treeMap.put("Smith", new Integer(21));
		Set<Map.Entry<String,Integer>>set=treeMap.entrySet();
		for(Entry<String,Integer>entry:set){
    
    
			System.out.println(entry.getKey()+":"+entry.getValue());
		}
		System.out.println("-----------");
		Set<String>KeySet=treeMap.keySet();
		StringBuffer buffer=new StringBuffer("");
		for(String str:KeySet)
		{
    
    
			buffer.append(str+",");
		}
		String str=buffer.substring(0,buffer.length()-1);
		System.out.println(str);
	}

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_45618376/article/details/111406632