zoukankan      html  css  js  c++  java
  • JAVA练手--集合

    集合框架体系如图所示

     

    Collections:是一个工具类java.util.Collections(可以使用它对集合对象进行操作)

    Collection:除了map(键值对)其他集合的父类

    1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

    2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。

    3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。

     

    ArrayList

    该类也是实现了List的接口,实现了可变大小的数组,随机访问和遍历元素时,提供更好的性能。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%,插入删除效率低。

    LinkedList

    该类实现了List接口,允许有null(空)元素。主要用于创建链表数据结构,该类没有同步方法,如果多个线程同时访问一个List,则必须自己实现访问同步,解决方法就是在创建List时候构造一个同步的List。例如:

    Vector 

    该类和ArrayList非常相似,但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍。

    HashSet

    该类实现了Set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个。

    TreeSet

    该类实现了Set接口,可以实现排序等功能。

     

    ArrayList 和 LinkedList 的区别

    ArrayList 是 List 接口的一种实现,它是使用数组来实现的。

    LinkedList 是 List 接口的一种实现,它是使用链表来实现的。

    ArrayList 遍历和查找元素比较快。LinkedList 遍历和查找元素比较慢。

    ArrayList 添加、删除元素比较慢。LinkedList 添加、删除元素比较快。

  • 相关阅读:
    PHP之html~01
    常用的html标签大全
    PHP从PHP5.0到PHP7.1的性能全评测
    PHP的性能演进(从PHP5.0到PHP7.1的性能全评测)
    Unix及类Unix系统文本编辑器的介绍
    keychain 的学习
    开发中遇到的一些问题
    IOS 照片浏览器总结(思想步骤)
    IOS 应用管理(九宫格) 总结笔记
    IOS 集成友盟分享
  • 原文地址:https://www.cnblogs.com/maogefff/p/8085880.html
Copyright © 2011-2022 走看看