首页 > 编程语言 >一周学完Java基础,第六天,常见容器

一周学完Java基础,第六天,常见容器

时间:2024-07-20 15:29:46浏览次数:19  
标签:map set Java util 第六天 add key java 学完

(1) 列表List 

        接口:
        java.util.List<>
        实现方式:
        java.util.ArrayList<> : 变长数组
        java.util.LinkedList<> : 双链表
        函数:
        add() : 在末尾添加一个元素
        clear():清空
        size():返回长度
        isEmpty():是否为空
        get(i) : 获取第i个元素
        set(i,val) : 将第i个元素设置为val

    //  List<Integer> list = new ArrayLsit<>();
        List<Integer> list = new LinkedList<>();
        
        list.add(1); //[1]
        list.add(2); //[1, 2]
        list.clear(); //[]
        list.add(1); 
        list.add(2); 
        list.size(); // 2
        list.isEmpty(); //false
        list.get(1); // 2
        list.set(1,4); 
        //list.set(3,4); 报错 必须先add再set

 

 (2) 栈 Stack

        类:
        java.util.Stack<>
        函数:
        push() : 压入元素
        pop() : 弹出栈顶元素,并返回栈顶元素
        peek() : 返回栈顶元素
        size() : 返回长度
        empty() : 栈是否为空
        clear() : 清空

            Stack<Integer> stk = new Stack<>();
            stk.push(1);
            stk.push(2);
            stk.pop(); // 2
            stk.peek();// 1
            stk.size();// 1
            stk.empty(); // false
            stk.clear();
            System.out.println(stk.size());

(3) 队列  Queue

        类:
        java.util.LinkedList<> 双链表
        java.util.PriorityQueue<> 优先队列,小根堆
        java.util.PriorityQueue<>(Collection.reverseOrder) 大根堆
        函数:
        add() : 队尾添加元素
        remove() : 删除并返回队头
        isEmpty() : 是否为空
        size() : 返回长度
        peek() : 返回队头
        clear() : 清空

       Queue<Integer> q= new PriorityQueue();//小根堆
       q.add(2);
       q.add(1);
       q.add(10);
       System.out.println(q.peek()); //1  由于是小根堆,所以顶部是最小值
       q.remove();
       System.out.println(q.peek()); //2  
       
       Queue<Integer> Bq = new PriorityQueue(Collections.reverseOrder());//大根堆
       Bq.add(2);
       Bq.add(1);
       Bq.add(10);
       System.out.println(Bq.peek()); //10

(4) 集合  Set

        接口:
        java.util.Set<K>
        实现:
        java.util.HashSet<K> : 哈希表
        java.util.TreeSet<K> : 平衡树
        函数:
        add() : 添加元素
        contains() : 是否包含某个元素
        remove() : 删除元素
        size() : 返回元素数
        isEmpty() : 是否为空
        clear() : 清空
        
        java.util.TreeSet的函数:
        ceiling(key):返回大于等于key的最小元素,不存在则返回null
        floor(key):返回小于等于key的最大元素,不存在则返回null

    Set<Integer> set = new HashSet<>(); //哈希表,顺序是随机的
       set.add(1);
       set.add(2);
       set.add(10);
       set.contains(2); //true
       set.remove(2);
       set.contains(2); //false
       for(int x : set)  System.out.println(x); //遍历Set
    TreeSet<Integer> setTree = new TreeSet<>(); //平衡树,顺序是有序的
       setTree.add(1);
       setTree.add(2);
       setTree.add(10);
       System.out.println(setTree.ceiling(5)); // 10
       System.out.println(setTree.floor(5)); // 2   

(5) 图  Map

        接口:
        java.util.Map<K,V>
        实现:
        java.util.HashMap<K,V> : 哈希表
        java.util.TreeMap<K,V> : 平衡树
        函数:
        put(key,value) : 添加关键字与其对应值
        get(key) : 返回关键字对应的值
        containsKey(key) : 是否包含关键字
        remove(key) : 删除关键字
        size() : 返回元素数
        isEmpty() : 是否为空
        clear() : 清空
        entrySet() : 获取Map中所有对象的集合
        
        Map.Entry<K,V> : Map中的对象类型
            getKey() : 获取关键字
            getValue() : 获取值
    
        java.util.TreeMap<K,V>的函数:
        ceilingEntry(key):返回大于等于key的最小元素,不存在则返回null
        floorEntry(key):返回小于等于key的最大元素,不存在则返回null

    Map<String,Integer> map = new HashMap<>(); //哈希表 无序
        map.put("123",2);
        map.put("321",3);
        map.put("21",10);
        map.get(123); //null
        map.get("123"); //2
        map.containsKey("123"); //true
        map.remove("123");
        map.containsKey("123"); //false
        
        for(Map.Entry<String,Integer> entry:map.entrySet())
            System.out.printf("%s %d\n",entry.getKey(),entry.getValue());
        //321 3
        //21 10
        
     TreeMap<String,Integer> map = new TreeMap<>(); //平衡树 有序
        map.put("123",2);
        map.put("321",3);
        map.put("21",10);
    
        
        for(Map.Entry<String,Integer> entry:map.entrySet())
            System.out.printf("%s %d\n",entry.getKey(),entry.getValue());
        //    123 2
        //    21 10
        //    321 3
        由于TreeMap的key为String类,其比较大小是通过字典序。所以是123>21>321
        
        TreeMap<Integer,Integer> Newmap = new TreeMap<>(); 
        Newmap.put(123,2);
        Newmap.put(321,3);
        Newmap.put(21,10);
        
        Map.Entry<Integer,Integer> up = Newmap.ceilingEntry(124);
        System.out.println(up);               //321=3
        System.out.println(up.getKey());      //321
        System.out.println(up.getValue());    //3

标签:map,set,Java,util,第六天,add,key,java,学完
From: https://blog.csdn.net/xc_bbbs1/article/details/140571965

相关文章

  • 学生Java学习路程-3
    ok,到了一周一次的总结时刻,我大致会有下面几个方面的论述:1.这周学习了Java的那些东西2.这周遇到了什么苦难3.未来是否需要改进方法等几个方面阐述我的学习路程。这周首先就是进行了for循环跟while的一些练习,主要学习的方面在Scanner的学习,这是网上以及网课建议新手用的输入形式,以......
  • JavaScript Program to print pyramid pattern (打印金字塔图案的程序)
     编写程序打印由星星组成的金字塔图案 例子: 输入:n=6输出:    *    **    ***    ****    *****    ******     *****    ****    ***    **    ......
  • Javascript 在我的本地服务器上运行,但在 WordPress 上不起作用
    大家好,我有一个问题。我有一个在本地服务器中完美运行的模板/主题,但是当我将其移动到Wordpress时,根据我的研究,我得到了“jQuery不兼容”的信息。 我附上了代码的图像。你能帮我一下吗,一切看起来都很完美,在我看来一切都很完美,但在Wordpress中却不然。提前谢谢你!......
  • Java基础语法(一)
    目录一、Java入门 java定义前期准备Java应用java的主要特性JDK和JRE二、Java基础概念注释关键字关键字特点字面量分类特殊的字面量\t变量数据类型标识符键盘录入Scanner类三、运算符四、循环和判断五、数组六、方法一、Java入门 java定义  ......
  • java项目(knife4j使用,静态资源未放在static资源包下,公共字段自动填充,Spring Cache与Spr
    Knife4j(生成接口文档)使用swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。官网:https://swagger.io/Knife4j是为JavaMVC框架集成Swagger生成Api文档的增强解决方案。使用方式1、导入knife4j的maven坐标<dependency>......
  • Java计算机毕业设计秒杀系统实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和电子商务的蓬勃兴起,秒杀活动作为一种高效促销手段,在各大电商平台中屡见不鲜。秒杀活动以其时间紧迫、价格诱人的特点,迅速......
  • Java计算机毕业设计老年教育学习系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着全球人口老龄化的加速,老年教育作为提升老年人生活质量、促进终身学习的重要途径,日益受到社会各界的关注。然而,传统教育模式在满足老年人多样化、......
  • Java解决贪心法解决盛水问题
    贪心法定义:   贪心算法是一种常见的解决优化问题的算法,其基本思想是在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部最优的决策,以期获得全局最优解贪心法的基本思路是从问题的某一个初始解出发,通过每一步的最优解,逐步逼近给定的目标,以尽可能快地求得更好......
  • 初学Java2
    在继续学习Java一周后,我发现Java在编码时有些地方与我之前学习过的C语言相同,比如许多函数与标识符大致是一样的,在一些地方的语法相似,这会有助于我对Java的学习。不同的地方也很多,比如很简单的一个地方,C语言对类型后缀有更严格的要求,特别是在整数类型上,必须显式指定long或longlong......
  • 基于Java Springboot餐厅点餐系统
    作者介绍:✌全网粉丝10W+本平台特邀作者、博客专家、CSDN新星计划导师、软件领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于项目实战✌一、作品包含源码+数据库+设计文档万字+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css......