초보 자 자바-맵

8473 단어 Java신출내기Map
Map
Map 은 키(key)에 따라 요 소 를 저장 하 는 용기 입 니 다.키(key)는 아래 표 시 를 닮 았 고 List 에서 아래 표 시 는 정수 입 니 다.맵 에서 키(key)를 누 르 면 임의의 유형의 대상 을 만 들 수 있 습 니 다.맵 에 중복 되 는 키(Key)가 있 으 면 안 됩 니 다.키(key)마다 대응 하 는 값(value)이 있 습 니 다.
하나의 키(key)와 그 에 대응 하 는 값 은 맵 집합의 원 소 를 구성한다.
Map 의 요 소 는 두 개의 대상 이 고 한 대상 은 키 이 며 한 대상 은 값 입 니 다.키 는 중복 할 수 없 지만 값 은 중복 할 수 있 습 니 다.
꼭대기 층 의 공통성 방법 을 보고 자 류 특유 의 대상 을 찾다.
맵 과 Collection 은 집합 프레임 워 크 에 병렬 되 어 있 습 니 다.
Map 에 저 장 된 것 은 키 쌍 입 니 다.
Map 저장 요 소 는 put 방법 을 사용 하고 Collection 은 add 방법 을 사용 합 니 다.
Map 집합 은 원 소 를 직접 꺼 내 는 방법 이 아니 라 Set 집합 으로 전환 하여 반복 을 통 해 원 소 를 얻 습 니 다.
맵 집합 중 키 는 유일 성 을 확보 해 야 합 니 다.
컬 렉 션 은 일렬 집합 이 고 맵 은 2 열 집합 이다.
학습 체계

Map    :
 ---| Map                 。            ;             。
            ---| HashMap         ,    
            ---| TreeMap           
---|Hashtable:
          ,      ,     null ,null 。
    , HashMap   。
---|HashMap:
          ,       ,    null ,null 。
        ,    hashCode  , equals  。
---| LinkedHashMap:
              。  Map          。
---|TreeMap:
          。   map         。    Comparable  Comparator       。return 0,        。
흔 한 방법

1、  :
    1、V put(K key, V value)    (     key ,     value   
    ,       ,       null)                                         
    2、putAll(Map<? extends K,? extends V> m)              
        (    )。
2、  
    1、remove()          ,  key  
    2、clear()           
3、  
     1:value get(key);               。           , 
   null。
3、  :
    1、boolean isEmpty()      0  true  false
    2、boolean containsKey(Object key)              key
3、boolean containsValue(Object value)              value
4、  :
Int size()
맵 조작
여기 사용hashMap삭제

import java.util.HashMap;
import java.util.Map;
public class Maps {
    public static void main(String[] args){
        Map<String,String> myMap=new HashMap<String,String>();
        myMap.put("N0lan","tryup");
        myMap.put("Cors","study");//add
        System.out.println(myMap);
        myMap.remove("N0lan");//delete
        System.out.println(myMap.get("Cors"));//find
        System.out.println(myMap.isEmpty());//panduan
        System.out.println(myMap.containsKey("Hello"));//
    }
}

맵 의 옮 겨 다 니 기
keyset 옮 겨 다 니 기
맵 을 set 집합(keyset()으로 바 꾸 고 set 의 교체 기 를 통 해 set 집합 에 있 는 모든 요소(Iterator)를 꺼 내 는 것 이 맵 집합 에 있 는 모든 키 이 고 get 방법 으로 키 에 대응 하 는 값 을 가 져 옵 니 다.

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Maps {
    public static void main(String[] args){
       /* Map<String,String> myMap=new HashMap<String,String>();
        myMap.put("N0lan","tryup");
        myMap.put("Cors","study");//add
        System.out.println(myMap);
        myMap.remove("N0lan");//delete
        System.out.println(myMap.get("Cors"));//find
        System.out.println(myMap.isEmpty());//panduan
        System.out.println(myMap.containsKey("Hello"));//*/
        Bianli();
    }
    public static void Bianli(){
        Map<String,String> myMap=new HashMap<String,String>();
        myMap.put("N0lan","tryup");
        myMap.put("III","tryups");
        myMap.put("Cors","study");//add
        //
        //     :
        //      :   keySet
        //       key value,         
        // Set<K> keySet()      key   Set  
        Set<String> keyvaule= myMap.keySet();
        Iterator<String> keys=keyvaule.iterator();
        while(keys.hasNext()){
            String key=keys.next();
            String vaule=myMap.get(key);
            System.out.println("key=" + key + " vaule=" + vaule);
        }
    }
}

두 번 째 방식:values 를 통 해 모든 값 을 가 져 옵 니 다.key 대상 을 가 져 올 수 없습니다.

세 번 째 방식:Map.Entry 옮 겨 다 니 기
대상 을 대상 으로 하 는 사상 은 map 집합 중의 키 와 값 맵 관 계 를 하나의 대상 으로 포장 합 니 다.바로 Map.Entry 입 니 다.이 대상 을 set 집합 에 저장 합 니 다.Map.Entry 는 하나의 대상 입 니 다.그러면 이 대상 이 갖 춘 getKey,getValue 는 키 와 값 을 얻 습 니 다.

 public  static  void Entryt(){
        Map<String,String> myMap=new HashMap<String,String>();
        myMap.put("N0lan","tryup");
        myMap.put("III","tryups");
        myMap.put("Cors","study");//add
        //    Map.Entry   Set   Map.Entry   key value  
        Set<Map.Entry<String,String>> ts= myMap.entrySet();
        Iterator<Map.Entry<String,String>> all=ts.iterator();
        while (all.hasNext()){
            Map.Entry<String, String> allin = all.next();
            System.out.println("key="+allin.getKey()+"  value="+allin.getValue());
        }
    }
}

HashMap 사례 는 사용자 정의 대상 을 Map 의 key 로 사용 합 니 다.

import sun.invoke.empty.Empty;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class SelfClass {
    public static  void main(String[] args){
        HashMap<Person,String> mymap=new HashMap<Person,String>();
        mymap.put(new Person("N0lan",99),"boy");
        mymap.put(new Person("zAD",99),"GIR");
        Set<Map.Entry<Person,String>> duixiang=mymap.entrySet();
        Iterator<Map.Entry<Person, String>> it = duixiang.iterator();
        while(it.hasNext()){
            Map.Entry<Person,String> next=it.next();
            Person key= next.getKey();
            String value = next.getValue();
            System.out.println(key + " = " + value);
        }
    }
}
class Person{
    private String name;
    private int age;
    Person(){
    }
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String getName(){
        return name;
    }
    public void Setname(String name){
        this.name=name;
    }
    @Override
    public int hashCode() {
        return this.name.hashCode() + age * 37;
    }
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Person) {
            Person p = (Person) obj;
            return this.name.equals(p.name) && this.age == p.age;
        } else {
            return false;
        }
    }
    @Override
    public String toString() {
        return "Person@name:" + this.name + " age:" + this.age;
    }
 
}
TreeMap
트 리 맵 의 정렬,트 리 맵 은 집합 키 를 정렬 할 수 있 습 니 다.어떻게 키 의 정렬 을 실현 합 니까?
방식 1:요소 자체 가 비교 성 을 가진다.
TreeSet 과 같은 원리 로 키 위치 에 저 장 된 대상 이 Comparable 인 터 페 이 스 를 실현 하고 compare To 방법 을 다시 써 야 한다.즉,요소 자체 가 비교 성 을 가지 도록 하 는 방식 을 요소 의 자연 정렬 이 라 고도 부 르 고 기본 정렬 이 라 고도 부른다.
방식 2:용기 비교 성
요소 자체 가 비교 성 을 가지 지 않 거나 자신 이 가 진 비교 성 은 필요 한 것 이 아니다.그렇다면 이 때 는 용기 자체 가 갖 출 수 있다.인터페이스 Comparator 를 실현 하고 compare 방법 을 다시 쓰 며 이 인터페이스의 하위 클래스 인 스 턴 스 대상 을 매개 변수 로 TreeMap 집합 에 전달 하 는 구조 방법 을 정의 해 야 합 니 다.
주의:Comparable 비교 방식 과 Comparator 비교 방식 이 동시에 존재 할 때 Comparator 의 비교 방식 을 위주 로 합 니 다.
총결산
이 글 은 여기까지 입 니 다.당신 에 게 도움 을 줄 수 있 기 를 바 랍 니 다.또한 당신 이 우리 의 더 많은 내용 에 관심 을 가 져 주 실 수 있 기 를 바 랍 니 다!

좋은 웹페이지 즐겨찾기