java HashMap和HashTable区别,Collection常见方法

    /**
     * @param args
     * 面试题
     * HashMap和Hashtable的区别
     * 共同点:
     * 底层都是哈希算法,都是双列集合
     * 区别:
     * 1,HashMap是线程不安全的,效率高,JDK1.2版本
     *   Hashtable是线程安全的,效率低,JDK1.0版本的
     * 2,HashMap可以存储null键和null值
     *   Hashtable不可以存储null键和null值
     */
    public static void main(String[] args) {
        HashMap<String, Integer> hm = new HashMap<>();
        hm.put(null, 23);
        hm.put("李四", null);
        System.out.println(hm);

        /*Hashtable<String, Integer> ht = new Hashtable<>();
        //ht.put(null, 23);
        ht.put("张三", null);
        System.out.println(ht);*/

        System.out.println("1111111111111");
=============================================================================================================================/**
     *     Collecitons中的常见方法
     *     public static <T> void sort(List<T> list)
        public static <T> int binarySearch(List<?> list,T key)
        public static <T> T max(Collection<?> coll)
        public static void reverse(List<?> list)
        public static void shuffle(List<?> list)
     */
    public static void main(String[] args) {
        //demo1();
        //demo2();
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("c");
        list.add("d");
        list.add("g");
        list.add("f");
        //System.out.println(Collections.max(list));             //根据默认排序结果获取集合中的最大值
        //Collections.reverse(list);                            //反转集合
        Collections.shuffle(list);                                //随机置换,可以用来洗牌
        System.out.println(list);
    }

    public static void demo2() {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("c");
        list.add("d");
        list.add("f");
        list.add("g");

        System.out.println(Collections.binarySearch(list, "c"));
        System.out.println(Collections.binarySearch(list, "b"));
    }

    public static void demo1() {
        ArrayList<String> list = new ArrayList<>();
        list.add("c");
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("d");

        System.out.println(list);
        Collections.sort(list);                        //将集合排序
        System.out.println(list);
    }
时间: 2024-10-10 16:19:56

java HashMap和HashTable区别,Collection常见方法的相关文章

JAVA HashMap与HashTable 区别

HashTable和HashMap区别 第一,继承不同. public class Hashtable extends Dictionary implements Mappublic class HashMap extends AbstractMap implements Map 第二 Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的.在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了. 第三 Hashta

JAVA中HashMap和Hashtable区别

Hashtable和HashMap在Java面试中相当容易被问到,甚至成为了集合框架面试题中最常被考的问题,所以在参加任何Java面试之前,都不要忘了准备这一题. 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Cloneable, <a href="http://lib.csdn.net/base/javase" class='replace_word' title="Java

HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别

Hash算法 Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128

HashMap底层实现原理以及HashMap与HashTable区别以及HashMap与HashSet区别

①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象.当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象.HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中. HashMap在每个链表节点中储存键值对对象. 当两个不同的键对象的hashc

vector与ArrayList、hashmap与hashtable区别

一.vector与ArrayList区别     首先要说明的是vector和arraylist都是list的实现类,都是代表链表的数据结构. java.util.Vector;  类中 package java.util; public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { protected

HashMap 和 HashTable 区别

来源:http://www.importnew.com/7010.html HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别.主要的区别有:线程安全性,同步(synchronization),以及速度. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable

hashMap和hashTable区别

[不定项选择题] 有关hashMap跟hashTable的区别,说法正确的是? HashMap和Hashtable都实现了Map接口 HashMap是非synchronized,而Hashtable是synchronized HashTable使用Enumeration,HashMap使用Iterator Hashtable直接使用对象的hashCode,HashMap重新计算hash值,而且用与代替求模 答案:A.B.C.D 来自牛客网的一网友评论,(尊重原评论,小弟在此受教.) HashTa

java HashMap and HashMultimap 区别

http://stackoverflow.com/questions/19222029/what-is-difference-between-hashmap-and-hashmultimap The difference is that with the second, Core Java implementation, you need to check whether the Set is there before you insert. Guava's Multimap takes car

Java集合HashMap和Hashtable的区别

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别于HashMap允许空(null)键值(key),由于线程安全,效率上高于Hashtable. HashMap允许将null作为一个entry的key或者value,而Hashtable不允许.HashMap把Hashtable的contains(包含)方法去掉了,改成containsvalue和containsKey.因为contains方法容易让人引起误解. Hashtable继承Dictio