首页 > 其他分享 >2023年6月11日,TreeSet,Comparable,HashMap

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

时间:2023-06-11 17:01:21浏览次数:44  
标签:11 map Comparable set System add key put TreeSet

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_比较器_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_HashMap_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_TreeSet_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_java_05

标签:11,map,Comparable,set,System,add,key,put,TreeSet
From: https://blog.51cto.com/u_15098423/6458302

相关文章

  • 6/11 闲话
    学别人推个歌:逃避行——Imase歌词さよなら逃避行昨日の酔いも覚めない君と抜け出す街を行こう背負い込んだ重い過去も飲み込んだ思いすらも乗り越えた乗り越えた二人で錆びついたこの心も夢を見たあの気持ちと飛び込んだ飛び込んだ二人でさよなら......
  • 基于QT实现的影院票务系统[2023-06-11]
    基于QT实现的影院票务系统[2023-06-11]1系统权限管理系统分3种用户权限:A游客权限-注册会员,查看电影场次信息,购买电影票。B会员权限-登录系统,管理个人信息,查看电影场次信息,购买电影票。C票务管理权限-登录系统,管理电影场次信息,查看电影票售卖情况,管理会员。以上为基础需......
  • 6.11周报
    文献阅读(一)运用赋能计算的方法,在网格层面量化东莞外卖垃圾的产生情况:Fullarticle:QuantifythefooddeliverypackagewastegenerationofDongguaningridlevelusingempowermentcalculationmethod(tandfonline.com)笔记地址:运用赋能计算方法,在网格层面量化东莞外卖......
  • C/C++数学口算比赛系统[2023-06-11]
    C/C++数学口算比赛系统[2023-06-11]题目三数学口算比赛系统设计要求:适用于小学生数学口算比赛的系统。比赛题型分为两种:“四则简单运算”和“四则混合运算”,计算机随机出题,选手计时回答。要求进入每种题型比赛时,计算机均有提示,每人的得分情况随时更新。菜单格式如图。基......
  • 算法学习day53动态规划part14-1143、53、1035
    packageLeetCode.DPpart14;/***1143.最长公共子序列*给定两个字符串text1和text2,返回这两个字符串的最长公共子序列的长度。*如果不存在公共子序列,返回0。*一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些......
  • 2023.6.11 从链表中删去总和值为0的节点
    对一个序列进行前缀和处理,假设p处前缀和与q处前缀和相等,说明\((p,q)\)之间的序列和为0。因此我们可以遍历一次链表,预处理出前缀和,同时用哈希表记录,哈希表的key为前缀和,value为所处节点。遇到相同的key时,直接覆盖,这样哈希表存储的就是前缀和为key的最后一个节点。第二次遍历......
  • win11 右键添加 .md 文件快捷方式
    尝试用常用方法添加.xmind.md文件,xmind文件成功,但是md文件不成功,因此记录解决方法参考详细方法https://www.cnblogs.com/stblack/p/16637219.html注册表相关https://www.cnblogs.com/sepmaple/articles/9401215.html问题:按照常用方法添加后右键还是不出现md项解决:直......
  • 第11章 外观模式(Façade Pattern)
    外观模式(FaçadePattern)——.NET设计模式系列之十二Terrylee,2006年3月概述在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖......
  • 611随笔QAQ
    1.古诗词里的中国十大名花  何须浅碧深红色,自是花中第一流。---------------------------桂花  只道花无十日红,此花无日不春风。----------------------------月季  遥知不是雪,为有暗香来。----------------------------------------梅花  孤兰生幽园,众草共无......
  • 【已解决】MySQL连接错误 ERROR 1129 (00000): Host ” is blocked because of many c
     问题连接MySQL 报错 ERROR1129(00000):Host”isblockedbecauseofmanyconnectionerrors原因同一个IP在短时间内产生太多终端的数据库连接(超过mysql数据库max_connection_errors设置),导致被阻塞。在系统变量:max_connect_errors设置了允许中断的次数,超过了这个次数(或者......