集合框架-面试题01

1、基础面试题

1、java中常见的集合框架

  • Collection:
    • List:LinkedList;ArrayList;Vector;Stack
    • Set:HashSet;TreeSet
  • Map
    • HashTable
    • HashMap
    • WeakHashMap

2、ArrayList与LinkedList的异同

  • 是否保证线程安全:ArrayList和LinkedList都是不保证线程安全的;
  • 底层数据结构:ArrayList用的是Object数组;LinkedList使用的是双向循环链表数据结构;
  • 插入和删除是否受元素位置的影响:ArrayList使用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响。LinkedList使用双向循环链表存储,插入、删除元素的时间复杂度不受元素位置的影响。都是接近O(1),数组接近O(n)。
  • 是否支持快速随机访问:LinkedList不支持高效的随机元素访问;ArrayList支持快速随机访问,即get(index)。
  • 内存空间占用:ArrayList列表结尾回预留一定的容量;LinkedList的每一个元素比ArrayList消耗更多空间;

3、HashMap和HashTable的区别

  • 线程是否安全:HashMap是非线程安全的;HashTable是线程安全的,内部方法基本都经过synchronized修饰。
  • 效率:因为线程安全的问题,HashMap要比HashTable效率高。当前都在使用ConcurrentHashMap。
  • 对Null key和Null value的支持:

转载(侵删):https://blog.csdn.net/u010775025/article/details/79315361

你可能感兴趣的:(java,面试题)