hashMap与LinkedHashMap与hashTable

hashMap与LinkedHashMap与hashTable

package demo;



import java.util.*;

public class demo4 {
    public static void main(String[] args) {
        /*这两种返回值的差异以及有什么用*/
        HashMap<Integer,Integer> hashMap = new HashMap<>();
        Hashtable<Integer,Integer> hashTable = new Hashtable<>();
        Map<Integer,Integer> hashMap1 = new HashMap<>();
        LinkedHashMap<Integer, Integer> linkedHashMap = new LinkedHashMap<>();
        /*新建一个数组*/
        int [] nums =new int[]{1,2,3,3,4,5,6,7,8,9,98};
        /*遍历数组,为每一个数组的元素加上索引值1*/
        for (int num : nums) {
            hashMap.put(num,1);
        }
        System.out.println(hashMap);
        for (int num : nums) {
            hashMap1.put(num,1);
        }
        System.out.println(hashMap1);
        for (int num : nums) {
            hashTable.put(num,1);
        }
        System.out.println(hashTable);
        for (int num : nums) {
            linkedHashMap.put(num,1);
        }
        System.out.println(linkedHashMap);
        /*为什么少一个3,因为map集合保证了key的唯一性
        * hashmap没有顺序
        * LinkedHashMap继承了hashMap,有顺序的*/
        /*{1=1, 2=1, 98=1, 3=1, 4=1, 5=1, 6=1, 7=1, 8=1, 9=1}
*/
        /*接下来把hashmap所有的方法都用一边*/

        /*总结下有哪些方法
        * 1.containsKey containsValue isEmpty() 判断是否有值有键有内容
        * 2.查询所有的键或者所有的值entrySet() keySet()
        * 3.针对特定的键得到特定的值get
        * 4.求得map有几个值
        * 5. 删除hashmap中的值
        * */
//        boolean b = hashMap.containsKey(1);
//        System.out.println(b);
//        boolean b1 = hashMap.containsValue(2);
//        System.out.println(b1);
//        hashMap.get(3);
//
//        Set<Map.Entry<Integer, Integer>> entries = hashMap.entrySet();
//        for (Map.Entry<Integer, Integer> entry : entries) {
//            System.out.println(entry);
//
//        }
//        boolean empty = hashMap.isEmpty();
//        System.out.println(empty);
//        Set<Integer> integers = hashMap.keySet();
//        for (Integer integer : integers) {
//            System.out.println(integer);
//        }
//        hashMap.size();
//        hashMap.remove("98");
//        System.out.println(hashMap);
//
    }
}

  • 因为算法题中经常使用hashMap,LinkedHashMap,hashTable.一次性全部回顾一遍
  • 第一种无序,key唯一,多线程,可以存NULL键
  • 第二种有序
  • 第三种,线程安全,单线程,不能存储NULL键
  • 第三种,线程安全,单线程,不能存储NULL键,最早出现现在被取代。因为多线程的快一些
  • 里面的properties集合是唯一和IO流相结合的集合

这里通过代码演示,回顾了所有的API

全部评论

相关推荐

#字节跳动工作体验##听劝,这个公司值得去吗#经历过&nbsp;22&nbsp;年秋招的牛牛们应该知道情况,说是冰川年应该是毫不夸张的。一边面临论文发不出去毕不了业的压力;还得接受工作难找的现实,现在回忆起来还是无奈又心酸。记得前年我找到实习后就跟范进中举一样,当时还专门写了个帖子(其实想想当时码字的原因可能只是单纯的想记录一下经历的不容易)。我是在抖音电商实习,推荐算法岗位。实习结束后成功上岸,拿到了转正名额,当时没闲着,拿了快手、小红书以及一些中厂的&nbsp;offer,总算跟紧崩了&nbsp;2&nbsp;年的自己和解。&nbsp;现在我入职字节一年半,心态、感受都有了一些改变,这篇就简单回顾下。这两年的心路历程实话说,实习入职,挺担心的。幻想...
在思考的安哥拉兔很讲文明:简单总结了一下我在公司感受到的团队氛围、及成长空间等方面的情况: 一、团队氛围 1. 年轻活力 * 在字节跳动内,大家大多比较年轻,所有充满活力。个人感觉呆在这种年轻化的团队会让我更加积极向上、一起加油。并且大家思维活跃,对于新事物的接受度很高,不会因为资历大小而对事情的定论。 2. 协作性强 * 非常喜欢字节的工作模式,而且大家的协作能力很强,甚至不同部门也能一起做一个大需求,沟通交流起来也很轻松,合作起来也很easy。 二、成长空间 1. 学习资源丰富 * 字节为员工提供了大量的学习资源。内部有各种培训课程,管理、业务等多个方面。同时,大家还可以通过内部的知识分享平台学习到其他同事在工作中的经验和技巧。例如,技术团队会每周每月去定期分享各种新技术或新平台的使用,让大家更快了解新技能。
点赞 评论 收藏
分享
11-11 14:21
西京学院 C++
无敌混子大王:首先一点,不管学校层次怎么样,教育经历放在第一页靠上位置,第一页看不到教育经历,hr基本直接扔掉了
点赞 评论 收藏
分享
我在朝九晚六双休的联想等你:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务