Map 객체의 keyset(), entryset() 및 Map.Entry

3771 단어

Map 객체의 keySet() 및 entrySet()


1. keySet()

public static void main(String[] args) {
	Map map = new HashMap();
	map.put("01", "qwe");
	map.put("02", "asd");
	map.put("03", "zxc");
	//  map set , map key 
	Set keySet = map.keySet();
	//  set , 
	Iterator it = keySet.iterator();
	while (it.hasNext()) {
		String key = it.next();
		//  map get 
		String value = map.get(key);
		//  key value 
		System.out.println("key:" + key + "-->value:" + value);
	}
}

키 Set () 은 맵 대상의 키 값의 set 집합을 되돌려줍니다.

2. entrySet()

public static void main(String[] args) {
		Map map = new HashMap();
		map.put("01", "qwe");
		map.put("02", "asd");
		map.put("03", "zxc");
		//  entrySet() map ( Map.Entry )
		Set> entrySet = map.entrySet();
		//  entryset , 
		Iterator> it2 = entrySet.iterator();
		while (it2.hasNext()) {
			//  Map.Entry me
			Map.Entry me = it2.next();
			//  key
			String key2 = me.getKey();
			//  value
			String value2 = me.getValue();
			System.out.println("key:" + key2 + "-->value:" + value2);
		}
	}

entry Set () 은 맵에 포함된 맵 관계를 되돌려주는 Set 집합 (하나의 관계는 키-값 쌍) 을 키-value (키-value) 으로 전체적으로 한 쌍씩 Set 집합에 저장합니다.

3. 요약


키셋과 entryset을 사용하여 반복하면 같은 결과를 얻을 수 있지만, 이들의 반복 속도는 차이가 있다.키셋 (): 교체 후 get () 을 통해서만 키를 찾을 수 있습니다.키 값에 따라value를 찾습니다.entrySet (): 교체하면 e.getKey (), e.getValue () 에서 키와value를 찾을 수 있습니다.
또한 키셋 ()의 속도는 entrySet () 보다 훨씬 느리다. 즉 키셋 방식으로 맵을 훑어보는 성능이 entrySet보다 못하다는 것이다. 성능을 높이기 위해 앞으로 entrySet () 방식으로 훑어보는 것을 많이 고려해야 한다.
 

2 Map.Entry


Map은 자바의 인터페이스, Map.Entry는 Map의 내부 인터페이스입니다.
맵은 키셋 (), entrySet () 등 일반적인 방법을 제공했고 키셋 () 방법의 반환 값은 맵에서 키값의 집합이다.entrySet () 의 반환값도 하나의 Set 집합을 반환합니다. 이 집합의 유형은 Map입니다.Entry.
Map.Entry는 Map 선언의 내부 인터페이스로, 이 인터페이스는 일반 인터페이스이며 Entry로 정의됩니다.Map의 엔티티(key-value 쌍)를 나타냅니다.인터페이스에 getKey(), getValue 메서드가 있습니다.
Map 대상을 훑어보는 데 자주 사용하는 방법은 상기 두 가지 외에 단순한 훑어보기value 값도 있다.Map에는 values 방법이 있는데,value의 Collection 집합을 되돌려줍니다.Collection을 통해 value를 누를 수도 있습니다.
public static void main(String[] args) {
		Map map = new HashMap();
		map.put("01", "qwe");
		map.put("02", "asd");
		map.put("03", "zxc");
		//  Collection , map value 
		Collection c = map.values();
		//  Collection value
		Iterator it = c.iterator();
		//  value , key 
		while (it.hasNext()) {
			Object value = it.next();
			System.out.println("value:" + value);
		}
	}

맵 대상을 두루 돌아다닐 때 맵 대상에서 키 값을 꺼낸 다음에 맵으로 되돌아갈 때마다 상대적인 값을 얻어야 하기 때문에 매우 번거롭고 시간이 걸린다.
다행히도, Map 클래스는 entrySet () 이라는 방법을 제공했는데, 이 방법은 Map를 되돌려줍니다.Entry 인스턴스 이후의 객체 세트이어서 Map.Entry 클래스는 getKey () 방법과 getValue () 방법을 제공합니다.
Set entries = map.entrySet( );
    if(entries != null) {
    Iterator iterator = entries.iterator( );
    while(iterator.hasNext( )) {
        Map.Entry entry =iterator.next( );
        Object key = entry.getKey( );
        Object value = entry.getValue();
        //
}
}

코드를 한 줄 추가했지만 맵에 대한 불필요한 'get' 호출을 많이 생략했습니다.동시에 개발자에게 키워드와 대응하는 값을 동시에 유지하는 클래스를 제공한다.Map.Entry는 또한 setValue () 방법을 제공하여, 프로그램원이 맵의 값을 수정할 수 있습니다.
본문 참고https://www.cnblogs.com/dreammyone/p/6994689.html및https://zhidao.baidu.com/question/2142158308850843508.html

좋은 웹페이지 즐겨찾기