Java学习笔记——Map之TreeMap

目录

一、TreeMap相关概念

二、TreeMap相关方法 

三、代码


Java学习笔记——Map之TreeMap_第1张图片

一、TreeMap相关概念

  • TreeMap实现SortMap接口,是一个有序的key-value集合;
  • TreeMap的数据结构是红黑树;
  • 非线性安全;
  • 支持null值和null键;
  • fail-fast机制;

二、TreeMap相关方法 

1、创建TreeMap

TreeMap treeMap = new TreeMap<>();

2、插入

// 插入
treeMap.put("1", "A");
treeMap.put("2", "B");
treeMap.put("3", "C");
treeMap.put("4", "D");
treeMap.put("5", "E");
treeMap.put("6", "F");
treeMap.put("7", "G");
treeMap.put("8", "H");
treeMap.put("9", "I");
System.out.println("------put()------");
System.out.println("treeMap: " + treeMap);
------put()------
treeMap: {1=A, 2=B, 3=C, 4=D, 5=E, 6=F, 7=G, 8=H, 9=I}

3、访问

// 访问
System.out.println("------访问------");
System.out.println("treeMap.get(1):"+treeMap.get("1"));
System.out.println("treeMap.get(2):"+treeMap.get("2"));

System.out.println("treeMap.keySet():"+treeMap.keySet());  // key
System.out.println("treeMap.entrySet():"+treeMap.entrySet());  // key-value

System.out.println("treeMap.firstEntry():"+treeMap.firstEntry());  // the first key-value
System.out.println("treeMap.lastEntry():"+treeMap.lastEntry());  //  the last key-value

System.out.println("treeMap.ceilingEntry(3):"+treeMap.ceilingEntry("3"));  // 返回大于等于key的key-value
System.out.println("treeMap.floorEntry(6):"+treeMap.floorEntry("6"));  // 返回小于等于key的key-value

System.out.println("treeMap.headMap(3):"+treeMap.headMap("3"));  // 返回所有小于key的key-value
System.out.println("treeMap.tailMap(3):"+treeMap.tailMap("3"));  // 返回所有大于等于key的key-value
------访问------
treeMap.get(1):A
treeMap.get(2):B
treeMap.keySet():[1, 2, 3, 4, 5, 6, 7, 8, 9]
treeMap.entrySet():[1=A, 2=B, 3=C, 4=D, 5=E, 6=F, 7=G, 8=H, 9=I]
treeMap.firstEntry():1=A
treeMap.lastEntry():9=I
treeMap.ceilingEntry(3):3=C
treeMap.floorEntry(6):6=F
treeMap.headMap(3):{1=A, 2=B}
treeMap.tailMap(3):{3=C, 4=D, 5=E, 6=F, 7=G, 8=H, 9=I}

4、判断

// 判断
System.out.println("------判断------");
System.out.println("treeMap.isEmpty():"+treeMap.isEmpty());
System.out.println("treeMap.containsKey(2):"+treeMap.containsKey("3"));
------判断------
treeMap.isEmpty():false
treeMap.containsKey(2):true

5、修改

// 修改
System.out.println("------replace()------");
System.out.println("treeMap.replace(2, 8):"+treeMap.replace("1", "a"));
System.out.println(treeMap);
------replace()------
treeMap.replace(2, 8):A
{1=a, 2=B, 3=C, 4=D, 5=E, 6=F, 7=G, 8=H, 9=I}

6、遍历

// 遍历
System.out.println("正序treeMap.descendingMap():"+treeMap);
System.out.println("倒叙treeMap.descendingMap():"+treeMap.descendingMap());
System.out.println("------for------");
for (String k: treeMap.keySet()){
    System.out.println("key: " + k + ", value: " + treeMap.get(k));
}

for (Map.Entry entry: treeMap.entrySet()){
    System.out.println("key - value: " + entry);
}

 

------for------
正序treeMap.descendingMap():{1=a, 2=B, 3=C, 4=D, 5=E, 6=F, 7=G, 8=H, 9=I}
倒叙treeMap.descendingMap():{9=I, 8=H, 7=G, 6=F, 5=E, 4=D, 3=C, 2=B, 1=a}
------for------
key: 1, value: a
key: 2, value: B
key: 3, value: C
key: 4, value: D
key: 5, value: E
key: 6, value: F
key: 7, value: G
key: 8, value: H
key: 9, value: I
key - value: 1=a
key - value: 2=B
key - value: 3=C
key - value: 4=D
key - value: 5=E
key - value: 6=F
key - value: 7=G
key - value: 8=H
key - value: 9=I

三、代码

import java.util.Map;
import java.util.TreeMap;

public class Day33 {
    public static void main(String[] args){
        // TreeMap
        TreeMap treeMap = new TreeMap<>();

        // 插入
        treeMap.put("1", "A");
        treeMap.put("2", "B");
        treeMap.put("3", "C");
        treeMap.put("4", "D");
        treeMap.put("5", "E");
        treeMap.put("6", "F");
        treeMap.put("7", "G");
        treeMap.put("8", "H");
        treeMap.put("9", "I");
        System.out.println("------put()------");
        System.out.println("treeMap: " + treeMap);

        // 访问
        System.out.println("------访问------");
        System.out.println("treeMap.get(1):"+treeMap.get("1"));
        System.out.println("treeMap.get(2):"+treeMap.get("2"));

        System.out.println("treeMap.keySet():"+treeMap.keySet());  // key
        System.out.println("treeMap.entrySet():"+treeMap.entrySet());  // key-value

        System.out.println("treeMap.firstEntry():"+treeMap.firstEntry());  // the first key-value
        System.out.println("treeMap.lastEntry():"+treeMap.lastEntry());  //  the last key-value

        System.out.println("treeMap.ceilingEntry(3):"+treeMap.ceilingEntry("3"));  // 返回大于等于key的key-value
        System.out.println("treeMap.floorEntry(6):"+treeMap.floorEntry("6"));  // 返回小于等于key的key-value

        System.out.println("treeMap.headMap(3):"+treeMap.headMap("3"));  // 返回所有小于key的key-value
        System.out.println("treeMap.tailMap(3):"+treeMap.tailMap("3"));  // 返回所有大于等于key的key-value



        // 判断
        System.out.println("------判断------");
        System.out.println("treeMap.isEmpty():"+treeMap.isEmpty());
        System.out.println("treeMap.containsKey(2):"+treeMap.containsKey("3"));

        // 修改
        System.out.println("------replace()------");
        System.out.println("treeMap.replace(2, 8):"+treeMap.replace("1", "a"));
        System.out.println(treeMap);

        // 遍历
        System.out.println("正序treeMap.descendingMap():"+treeMap);
        System.out.println("倒叙treeMap.descendingMap():"+treeMap.descendingMap());
        System.out.println("------for------");
        for (String k: treeMap.keySet()){
            System.out.println("key: " + k + ", value: " + treeMap.get(k));
        }

        for (Map.Entry entry: treeMap.entrySet()){
            System.out.println("key - value: " + entry);
        }
    }
}

你可能感兴趣的:(Java,java)