JAVAEE细细看 进阶 09 - Map

我与影子孤独终老i 提交于 2019-12-25 07:09:50

Map

一. 概述:

a. 就是字典
b. Interface Map<K, V> ,是个接口,key、value
在这里插入图片描述

Map<String, String> map = new HashMap<>();

// 增
map.put("name", "zhangsan");
map.put("addr","nanjing");
map.put("phone","110");
System.out.println(map);
System.out.println("--------");

// 删
map.remove("phone");
System.out.println(map);
System.out.println("--------");

// 改
map.put("addr","shanghai");
System.out.println(map);
System.out.println("--------");

// 查
System.out.println(map.containsKey("addr"));
System.out.println(map.containsValue("shanghai"));
System.out.println(map.size());

// 清除
map.clear();
System.out.println(map);
System.out.println("--------");

// 是否为空
System.out.println(map.isEmpty());

二. 特殊的

get() // 根据k,查v
keySet() // 返回所有key,因为是不重复的,所有返回set集合
values() // 获取所有的value,因为可能重复,所以返回collection集合

Map<String, String> map = new HashMap<>();

map.put("name", "zhangsan");
map.put("addr","nanjing");
map.put("phone","110");

// 查
System.out.println(map.get("name"));

// 获取所有的key ,因为是不重复的,所有返回set集合
Set<String> strings = map.keySet();
System.out.println(strings);

// 获取所有的value,因为可能重复,所以返回collection集合
Collection<String> values = map.values();
for(String s: values) {
    System.out.println(s);
}
三 . 遍历

遍历方式一

//创建集合对象
Map<String, String> map = new HashMap<String, String>();

//添加元素
map.put("张无忌", "赵敏");
map.put("郭靖", "黄蓉");
map.put("杨过", "小龙女");

// 拿到所有的key
Set<String> set = map.keySet();

// 遍历key,让key去找value
for (String s: set) {
    System.out.println("key = " + s + ", value = " + map.get(s));
    /*        
    key = 杨过, value = 小龙女
    key = 郭靖, value = 黄蓉
    key = 张无忌, value = 赵敏
    */
}

遍历方式2
a. -entrySet 返回Map.Entry<k, v> 对象
b. 通过getKey(), getValue() 获取元素

//创建集合对象
Map<String, String> map = new HashMap<String, String>();

//添加元素
map.put("张无忌", "赵敏");
map.put("郭靖", "黄蓉");
map.put("杨过", "小龙女");

Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> me: entries) {
    String k = me.getKey();
    String v = me.getValue();
    System.out.println("k = " + k + ", v = " + v);
    /*
    k = 杨过, v = 小龙女
    k = 郭靖, v = 黄蓉
    k = 张无忌, v = 赵敏
    */
}
四. Collections 排序方法
  • sort​() 从小到大排序
  • reverse() 按添加顺序,反序排序
  • shuffle() 随机排序
List<Integer> li = new ArrayList<>();
li.add(1);
li.add(10);
li.add(30);
li.add(50);
li.add(100);
li.add(90);

Collections.sort(li);
System.out.println(li); // [1, 10, 30, 50, 90, 100]

Collections.reverse(li); // [100, 90, 50, 30, 10, 1]
System.out.println(li);

Collections.shuffle(li);
System.out.println(li);  // [30, 50, 10, 100, 1, 90]

  • sort(list,compare)
public static void main(String[] args) {
    //创建ArrayList集合对象
    ArrayList<Student> array = new ArrayList<Student>();

    //创建学生对象
    Student s1 = new Student("张三", 30);
    Student s2 = new Student("李四", 35);
    Student s3 = new Student("王五", 33);
    Student s4 = new Student("赵柳", 33);

    //把学生添加到集合
    array.add(s1);
    array.add(s2);
    array.add(s3);
    array.add(s4);

    Collections.sort(array, new Comparator<Student>() {
        @Override
        public int compare(Student s1, Student s2) {
            int num = s1.getAge() - s2.getAge();
            num = num != 0? num : s1.getName().compareTo(s2.getName());
            return num;
        }
    });

    System.out.println(array);

}
五. 总结

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!