zoukankan      html  css  js  c++  java
  • java数据结构学习

    HashTable, HashMap,TreeMap区别

    HashTable, HashMap主要区别在于线程安全性,HashTable是线程安全的,另外继承的类不一样,
    HashTable继承自Dictionary,实际使用效果差不多。
    HashTable不允许空值,HashMap允许空值

    Hashmap和Hashtable都是无序的


    TreeMap是有序的,而且每个键值对的第一元素及key如果不是基本数据类型,并且实现了Comparable接口,那么可以在这个接口的实现里面自定义比较规则,排序规则

    TreeMap的实现算法是红黑树,这是一种特殊的二叉树,比较复杂,后面再研究。TreeMap是主要使用场景是用于需要排序的map

    Vector,ArrayList, LinkedList的区别

    Vector和ArrayList的实现基本一致,类似StringBuffer和StringBuilder,Vector是线程安全的
    LinkedList的内部是链表,Vector和ArrayList内部是数组
    链表在开头和末尾写入(包括插入,删除)都快,而且在中间插入,删除也快;但是读一个元素要挨个遍历,比较慢
    数组在末尾写入(包括插入,删除)也快,但是开头和中间插入,删除很慢,因为后面的元素都要移动位置;读一个元素很快,因为有编号

    String,StringBuffer,StringBuilder的区别

    看了StringBuffer和StringBuilder的源码,两者基本一致,
    StringBuffer多了几个方法,相同的方法里面每个都加了synchronized关键字,其他都相同。
    StringBuffer线程安全,StringBuilder速度快

    -------------------------
    技术不在于多么高超先进巧妙,而在于要有现实价值!!!
  • 相关阅读:
    POJ 3280 Cheapest Palindrome
    POJ 1191 棋盘分割
    POJ 1260 Pearls
    HDOJ 4731 Minimum palindrome
    2013 ACM/ICPC Asia Regional Chengdu Online 1004 Minimum palindrome
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    POJ 1276 Cash Machine
    POJ 1837 Balance
    HDU 4554 叛逆的小明
  • 原文地址:https://www.cnblogs.com/geektcp/p/9912429.html
Copyright © 2011-2022 走看看