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