Collection接口常用的子接口有:List接口、Set接口
List接口常用的子类有:ArrayList类、LinkedList类
Set接口常用的子类有:HashSet类、LinkedHashSet类

方式1:Collection<元素类型> 变量名 = new ArrayList<元素类型>();
方式2:Collection 变量名 = new ArrayList();
方式1创建的集合,只能存储<>中指定的元素类型,该方式为常用方式
方式2创建的集合,集合的元素类型默认为Object类型,即任何类型的元素都可以存储。

Collectoin集合的功能概述:

      1)添加功能

          boolean add(Object obj):添加功能

          boolean addAll(Collection c):添加一个集合的元素

      2)删除功能

          void clear():移除所有元素

          boolean remove(Object obj):移除一个元素

          boolean removeAll(Collection c):移除一个集合的元素(只要有一个元素移除

了就返回true)

      3)判断功能

          boolean contains(Object obj):判断集合中是否包含指定的元素

          boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(只

有包含指定集合中所有的元素才叫包含)

          boolean isEmpty():判断集合是否为空(指集合的数据元素为空)

      4)获取功能

          Iterator iterator():迭代器,集合专有的遍历方式

      5)长度功能

          int size():元素的个数

      6)交集功能

          boolean retainAll(Collection c):两个集合中都有的元素(假设有两个集合A、

B,A对B做交集,最终的结果保存在集合A中,集合B不变,返回值表示的是集合A是否发生过改变)

      7)把集合转换为数组

          Object[] toArray():把集合转成数组,可以实现集合的遍历

  Collection集合有两个子接口List和Set。

List集合

List集合的特点:有序(指存储和取出元素的顺序一致)、存储元素可重复

    List集合的特有功能:

      1)添加功能

        void add(int index,Object element):在指定位置添加元素

      2)获取功能

        Object get(int index):获取指定位置的元素

      3)列表迭代器

        ListIterator listIterator():迭代所有的元素

        ListIteraror listIterator(int index):从指定位置开始迭代元素

      4)删除功能

        Object remove(int index):根据索引删除元素,返回被删除的元素

      5)修改功能

        Object set(int index,Object element):根据索引修改元素,返回被修改的元素

   List集合有ArrayList、Vector和LinkedList三个常用子类。

LinkedList 中的方法

Set集合

    Set集合的特点:无序(指元素的存储和取出顺序不一致)、存储元素唯一

    Set集合有HashSet和TreeSet两个常用子类。

Set集合的子类

    1)HashSet类的特点:

      HashSet类不保证Set的迭代顺序,特别是它不保证该顺序恒久不变。

      注意:虽然Set集合的元素是无序的,但是作为集合来说,它肯定有它自己的元素存储顺序

。而如果你的顺序恰好和它的存储顺序一致,这代表不了有序,你可以多存储一些数据,看效果。

    HashSet类的底层数据结构是哈希表。而哈希表保证元素的唯一性依赖于两个方法:int

hashCode()和boolean equals(Object obj)

    用HashSet存储元素的执行顺序:

      首先比较hashCode()值是否相同

        是:继续执行equals(),看其返回值

            是true:说明元素重复,不添加

            是false:就直接添加到集合

        否:就直接添加到集合

    HashSet类有一个子类LinkedHashSet,LinkedHashSet存储元素的特点是有序、唯一

      LinkedHashSet的底层数据结构由链表和哈希表组成,由链表保证元素有序,由哈希表保证

元素唯一。

---|Collection: 单列集合  
            ---|List: 有存储顺序, 可重复  
                ---|ArrayList:  数组实现, 查找快, 增删慢  
                            由于是数组实现, 在增和删的时候会牵扯到数组  
                                                增容, 以及拷贝元素. 所以慢。数组是可以直接  
                                                按索引查找, 所以查找时较快  
                ---|LinkedList: 链表实现, 增删快, 查找慢  
                            由于链表实现, 增加时只要让前一个元素记住自  
                                               己就可以, 删除时让前一个元素记住后一个元  
                                               素, 后一个元素记住前一个元素. 这样的增删效  
                                             率较高但查询时需要一个一个的遍历, 所以效率  
                                                较低  
                ---|Vector: 和ArrayList原理相同, 但线程安全, 效率略低  
                             和ArrayList实现方式相同, 但考虑了线程安全问  
                                                题, 所以效率略低  
            ---|Set: 无存储顺序, 不可重复  
                ---|HashSet  
                ---|TreeSet  
                ---|LinkedHashSet    
---| Map: 键值对  
        ---|HashMap  key不可重复,无序存取,哈希表实现
        ---|TreeMap  
        ---|HashTable  
        ---|LinkedHashMap  双向链表的哈希表

LinkedList

Collection接口和list,set子类的更多相关文章

  1. 集合中Set接口与Collection接口,常用子类TreeSet,HashSet.

    Set接口与List接口的不同之处在于: 不允许有重复的数据. 定义如下: public interface Set<E>extends Collection<E> 主要方法与 ...

  2. java中常用的数据结构--Collection接口及其子类

    java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.集合和数组的区别 二.C ...

  3. Collection接口

    Collection接口所定义的方法: clear:清空 retainAll 求一个Collection和另一个 Collection的交集. object[] toArray()  把里面的各个对象 ...

  4. Java集合框架之Collection接口

    Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架.Java集合工具包位于Java.util包下 ...

  5. 集合框架之Collection接口

    Collection 层次结构中的根接口.Collection表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许有重复的元素,而另一些则不允许.一些 coll ...

  6. java_18 Collection接口

    1.Collection接口 Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许有重复的元素 ...

  7. JAVA中Collection接口和Map接口的主要实现类

    Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素 ...

  8. Java:集合,Collection接口框架图

    Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...

  9. 【Java面试题】35 List, Set, Map是否继承自Collection接口?

    Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法. Set 和List 都继承了Conllection:Set具有与Collection完全一样的接 ...

随机推荐

  1. $_server[]关于浏览器和服务器的参数获取

    $_SERVER['USER'] www $_SERVER['HOME'] /home/www $_SERVER['HTTP_UPGRADE_INSECURE_REQUESTS'] 1 $_SERVE ...

  2. .user.ini 无法修改/删除 怎么办?

    首先 了解chattr命令: Linux chattr命令用于改变文件属性. 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途.b:不更 ...

  3. 数学--数论--HDU 2582 F(N) 暴力打表找规律

    This time I need you to calculate the f(n) . (3<=n<=1000000) f(n)= Gcd(3)+Gcd(4)+-+Gcd(i)+-+Gc ...

  4. Naigos install pnp4nagios 绘图插件

    原文地址:http://www.cnblogs.com/caoguo/p/5022230.html vim /etc/httpd/conf/httpd.conf <Directory " ...

  5. session与cookie的浅谈

    cookie的用途: 当你浏览网页时,会有一些推送消息,大多数是你最近留意过的同类东西,比如你想买桌子,上淘宝搜了一下,结果连着几天会有各种各样的桌子的链接.这是因为你浏览某个网页的时候,WEB 服务 ...

  6. vue后台管理系统介绍

    项目GitHub地址:https://github.com/Little-Orange7/cmms-vue 一.简介 很多公司稍微复杂一点的业务,基本上都需要后台管理系统,来对业务进行各个维度的统计. ...

  7. CC2530ADC应用

    ADC单通道外部电压采集 需要设置一个上机位命令控制字符. 系统时钟初始化——32MHZ晶振 串口0函数初始化——设置串口对应引脚,波特率,清楚中断标志 串口0接收中断响应函数——U0DBUF将控制命 ...

  8. LeetCode--Sort Array By Parity && N-Repeated Element in Size 2N Array (Easy)

    905. Sort Array By Parity (Easy)# Given an array A of non-negative integers, return an array consist ...

  9. QtCreator MSVC 搭建 Debugger

    QtCreatorForWindows搭建Debugger QtCreator for windows选择mingw或者msvc: qt-opensource-windows-x86-msvc2015 ...

  10. Qt5.5 connection firebird on Linux Centos7.2 or windows

    windows c++ 项目移植到 linux,原项目需要连接 Firebird数据库. google 后知道 linux qt connection Firebird 有两种方法: 1.ibpp c ...