Java基础

Map笔记:

import java.util.*;

/**一:Collection接口的
 *  Map接口: HashMap(主要实现类) : HashedMap / LinkedHashMap  /TreeMap
 *  Map接口: <键,值>对, 重复的键会进行值得覆盖 ,输出顺序和放入顺序是不一定可以保持顺序的!
 * 修改查询操作: 1.put(key, value), 2.remove(key)  3.putAll(其他map), 复制其他映射中的所有键值对;
 *               4.get(key),返回指定的键key所映射的值;  5.containsKey(key) /containsValue() 存在指定的键/值,则返回true
 *-----------------------------
 *     集合视图方法:
 *          values()
 *          keySet()
 *          entrySet()  :[Map.Entry 接口]四个方法:setValue(V value)/getKey()/getValue()/equals(o)
 *------------------------------
 * LinkedHashedMap 是HashMap类的子类,它保持键的顺序与插入的顺序一致!
 * TreeMap 实现了 SortedMap的接口, SortedMap 接口能保证各项按照关键字升序进行排序(默认自然排序)
 *          构造方法: TreeMap()/TreeMap(Comparator c)/TreeMap(SortedMap m)/TreeMap(Map m)
 *       --------------
 * 二: 集合的输出
 *          1.遍历key集 和value集 ,  Set keyset=mp3.keySet(); 然后使用加强的For循环即可!
 *          2.遍历value集 ,  Collection vals= mp3.values(); 然后使用迭代器for遍历: Iterator i= vals.iterator();
 *          3.//双向迭代器输出 :ListIterator it = all.listIterator()  正向/反向一波
 *          4.遍历键值对!
 */

测试代码:

public class TestMap {
    public static void main(String[] args) {
        Map mp=new HashMap();
        mp.put("AAA1",123);
        mp.put("AAA1",1234);
        mp.put("AAA2",124);
        mp.put("AAA3",125);
        System.out.println("-->"+mp.get("AAA1"));
        System.out.println(mp);

        HashMap<String,Integer>ss=new HashMap<String,Integer>();
        ss.putAll(mp);
        System.out.println(ss);

        Map mp2=new LinkedHashMap();
        mp2.put("AAA1",123);mp2.put("AAA1",1234);mp2.put("AAA2",124);
        mp2.put("AAA3",125);
        System.out.println(mp2+"----"+mp2.getClass()+"------");

        Map mp3=new TreeMap();
        mp3.put("AB",123);mp3.put("A",1234);
        mp3.put("X",124);mp3.put("AX",125);
        System.out.println(mp3+"----"+mp3.getClass()+"------");
        //1.遍历key集
        Set keyset=mp3.keySet();
        for (Object o: keyset){
            System.out.print("   "+o);
        }
        System.out.println();
        //2.遍历value集
        Collection vals= mp3.values();
        Iterator i= vals.iterator();
        while(i.hasNext())
            System.out.print("   "+i.next());
        System.out.println();
        //3.遍历键值对,方式1:
        Set st1=mp3.keySet();
        for(Object o:st1)
            System.out.print(o+"---->"+mp3.get(o)+"  ");
        System.out.println();
                    //方式2
        Set st2=mp3.entrySet();
        for(Object o:st2){
            Map.Entry entry=(Map.Entry) o;
            System.out.print(entry.getKey()+":"+entry.getValue()+"  ");
        }
     //双向迭代器输出 :ListIterator   正向/反向一波
        ArrayList<String> all=new ArrayList<String>();
        all.add("Hello");all.add("__");all.add("World");
        ListIterator it=all.listIterator();
        System.out.println("
先正着 ListIterator:");
        while(it.hasNext())
            System.out.print("  "+it.next());
        System.out.println("
再逆着返回回去 ListIterator:");
        while(it.hasPrevious())
            System.out.print("  "+it.previous());
    }
}

测试结果:

-->1234
{AAA3=125, AAA1=1234, AAA2=124}
{AAA3=125, AAA1=1234, AAA2=124}
{AAA1=1234, AAA2=124, AAA3=125}----class java.util.LinkedHashMap------
{A=1234, AB=123, AX=125, X=124}----class java.util.TreeMap------
   A   AB   AX   X
   1234   123   125   124
A---->1234  AB---->123  AX---->125  X---->124  
A:1234  AB:123  AX:125  X:124  
先正着 ListIterator:
  Hello  __  World
再逆着返回回去 ListIterator:
  World  __  Hello
原文地址:https://www.cnblogs.com/zhazhaacmer/p/9792087.html