0
点赞
收藏
分享

微信扫一扫

2023年6月11日,TreeSet,Comparable,HashMap

2023年6月11日,TreeSet,Comparable,HashMap_TreeSet

1. Set

1. TreeSet

TreeSet

1、存储Integer的元素,升序排列

2、存储String的元素,字典排列

TreeSet根据元素的不同类型使用不同的排序规则

public class test01 {
    /**
     * 知识点:TreeSet
     *      1、存储Integer的元素,升序排列
     *      2、存储String的元素,字典排列
     * 特点:自然排序
     *      TreeSet根据元素的不同类型使用不同的排序规则
     *
     * @param args
     */
    public static void main(String[] args) {
        TreeSet<Integer> set = new TreeSet<>();
        set.add(7);
        set.add(5);
        set.add(4);
        set.add(6);
        set.add(8);
        set.add(9);
        set.add(2);
        set.add(1);
        set.add(3);
        for (Integer element:set
             ) {
            System.out.print(element+" ");
        }
        System.out.println();
        TreeSet<String> set2 = new TreeSet<>();
        set2.add("c");
        set2.add("d");
        set2.add("a");
        set2.add("b");
        set2.add("e");
        set2.add("f");
        set2.add("e");
        for (String element:set2
             ) {
            System.out.print(element+" ");
        }
    }
}

2023年6月11日,TreeSet,Comparable,HashMap_HashMap_02

2. Comparable - 接口(内置比较器)

比较器的优先级别:外置比较器>内置比较器

public int compareTO(T o);

public class XXX implements Comparable<Student>{
    //排序规则:按照自己的需求来写
	@Override
	public int compareTo() {
		//TreeSet场景中:
		//this表示要添加的对象
		//o表示在TreeSet中已经存储的对象
		return this.XX - o.XX;
	}
}

面试题:项目人员分配怎么样?

前端:2-4人

后端:3-6人

测试:多个项目一个测试

UI:多个项目一个UI

3. Comparator - 接口(外置比较器)

TreeSet<> set = new TreeSet<>(new Comparator<>){
    @Override
	public int compareTo(XX,XX) {
        //比较代码
        return;
	}
}

2. Map

1. HashMap

知识点:HashMap

存储数据方式为键值存储

Map的遍历-KeySet()

获取map中所有的key,存入Set集合,遍历Set集合依次把key值取出来,利用map.get(key)获取value值//获取的value是无序的

特点:

无序+key去重,value允许重复

package com.wz.hashmap_class;

import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Set;

public class test01 {
    /**
     * 知识点:HashMap
     *      存储数据方式为键值存储
     * @param args
     */
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        //添加元素
        map.put("张三",20);
        map.put("李四",21);
        map.put("王五",22);
        map.put("赵六",23);
        map.put("张七",24);
        //通过key获取value
        Integer integer = map.get("张三");
        System.out.println("通过key获取value:"+integer);
        System.out.println("-----------");
        //map.clear();

        System.out.println("判断map中是是否包含某个key:"+map.containsKey("张三"));
        System.out.println("判断map中是是否包含某个key:"+map.containsValue("20"));

        System.out.println("判断map集合是否没有元素:" + map.isEmpty());

        //根据key删除映射关系
        map.remove("张三");
        //根据key+value删除映射关系
        map.remove("张三", 20);

        System.out.println("获取集合元素个数:" + map.size());

        //获取map集合中所有的value
        Collection<Integer> values = map.values();
        System.out.println(Arrays.toString(values.toArray()));//集合->数组->字符串

        //Map的遍历-KeySet()
        //获取map中所有的key,存入Set集合,遍历Set集合依次把key值取出来,利用map.get(key)获取value值
        //获取的value是无序的
        Set<String> set = map.keySet();
        for (String key:set
             ) {
            Integer integer1 = map.get(key);
            System.out.println(key+"-----"+integer1);
        }
        System.out.println("-------------");
    }
}

2023年6月11日,TreeSet,Comparable,HashMap_TreeSet_03

package com.wz.hashmap_class;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class test02 {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        //添加元素
        map.put("张三",20);
        map.put("李四",21);
        map.put("王五",22);
        map.put("赵六",23);
        map.put("张七",24);
        //遍历- entrySet()
        //获取map中所有的映射关系对象(Entry),存入Set集合一次把Entry取出来,获取Entry中的键和值
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String,Integer> entry:entries
             ) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+"-----"+value);
        }
    }
}

2023年6月11日,TreeSet,Comparable,HashMap_HashMap_04

package com.wz.hashmap_class;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class test02 {
    /**
     * HashMap的特点:
     *        无序+key去重,value允许重复
     * @param args
     */
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        //添加元素
        map.put("aaa",20);
        map.put("bbb",20);
        map.put("ccc",20);
        map.put("ddd",23);
        map.put("ddd",25);
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String,Integer> entry:entries
             ) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+"-----"+value);
        }
    }
}

2023年6月11日,TreeSet,Comparable,HashMap_比较器_05

举报

相关推荐

0 条评论