zoukankan      html  css  js  c++  java
  • Java集合框架小结

    1.Java集合框架的基础接口有哪些?
    Collection为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。
    Set是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。
    List是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态变换的数组。
    Map是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。

    2.HashMap和HashTable有何不同?
    (1)HashMap允许key和value为null,而HashTable不允许。
    (2)HashTable是同步的,而HashMap不是。所以HashMap适合单线程环境,HashTable适合多线程环境。

    3.ArrayList和LinkedList有何区别?
    ArrayList和LinkedList两者都实现了List接口,但是它们之间有些不同。
     (1)ArrayList是由Array所支持的基于一个索引的数据结构,所以它提供对元素的随机访问,复杂度为O(1),但LinkedList存储一系列的节点数据,
            每个节点都与前一个和下一个节点相连接。所以,尽管有使用索引获取元素的方法,内部实现是从起始点开始遍历,遍历到索引的节点然后返
            回元素, 时间复杂度为O(n),比ArrayList要慢。
     (2)与ArrayList相比,在LinkedList中插入、添加和删除一个元素会更快,因为在一个元素被插入到中间的时候,不会涉及改变数组的大小,或更新索引。
     (3)LinkedList比ArrayList消耗更多的内存,因为LinkedList中的每个节点存储了前后节点的引用。

    4.哪些集合类是线程安全的?(同步[会阻塞]是线程安全的,异步[不会阻塞]是线程不安全的)
        Vector、HashTable、Properties和Stack是同步类,所以它们是线程安全的,可以在多线程环境下使用。Java1.5并发API包括一些集合类,允许迭代时修改,
        因为它们都工作在集合的克隆上,所以它们在多线程环境中是安全的。

    5.Collections类是什么?
        Java.util.Collections是一个工具类仅包含静态方法,它们操作或返回集合。它包含操作集合的多态算法,返回一个由指定集合支持的新集合和其它一些内容。这个类包含集合框架算法的方法,比如折半搜索、排序、混编和逆序等。

  • 相关阅读:
    UITextField editingDidEnd 不调用(不响应)
    修改 Navigation Bar 返回按钮文字和图片
    HTTPS抓包
    brew 基本使用方法
    Linux基本命令
    AR 初探
    汇编学习
    ios GCD ---- (1)
    axios导出或者下载
    Vue绑定图片src出现的问题
  • 原文地址:https://www.cnblogs.com/gqs92/p/6763770.html
Copyright © 2011-2022 走看看