1, Set :集合中对象不按特定的方式排序,并且没有重复对象,它有些实现类能对集合按特定方式排序

  List :集合中对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索独享,List和数组有些相似。

  Map : 集合中的每一个元素包含一对键对象和值对象,集合汇总没有重复的键对象,值对象可以重复。它的有些实现类能对集合中的键对象进行排序。

2,Set 和 List 接口继承了Collection 接口。

  ‘ Collection’ 接口 iterator() 和 toArray()用于获得集合中所有的元素。

  Iterator 接口隐藏底层集合的数据结构,给客户提供了遍历各种类型的集合的统一接口。

  Iterator 声明了如下方法:

    hashNext() 判断集合中的元素是否遍历完成

    next()  返回下一个元素

    remove() 从集合中删除上一个由next() 方法返回的元素。

3, Set 集合:

  Set 接口有两个实现类: HashSet 和 TreeSet

  HashSet 存取速度比较快,HashSet 还有个子类 LinkedHashSet (即实现了哈希算法,还实现了链表的数据结构,链表数据结构能提高插入和删除元素的性能。

  TreeSet 实现了SortedSet 接口,具有排序功能。

  Set的一般用法: Set中的对象是否相等的比较是用equals 进行比较的

  HashSet : 比较的是哈希码和equals 进行比较的

  TreeSet :向集合中加入数据的时候,会把它插入到有序的对象序列中。TreeSet 支持两种排序方式 自然排序和客户排序, 默认是自然排序。

  a> 自然排序: 一部分类(Integer,Double,String)等,实现了Comparable接口有一个compareTo(Object o)方法,返回整数类型。

    a.compareTo(b) 返回0 a == b, 返回 小于0 a < b ,返回 > 0 a > b.

  b> 客户排序 java.util.Comparator<Type> 接口提供了具体的排序方式。Comparator 有个compare(Type x,Type y)

4,   ArrayList : 长度可变的数组,允许对元素进行快速的随机访问,但是向 ArrayList 中插入与删除数据较慢。

  LinkList : 实现中采用链表数据结构。

  LinkList 单独具有 addFirst() ,addLast() ,getFirst() ,getLast() ,removeFirst() , removeLast(). 这些方法可以作为堆栈,队列,和双向队列来使用。

5, Collections 类 是java集合类库中的辅助类。

    sort(List list) : 对List中的对象进行自然排序

    sort(List list,Comarator comparator) : 对List 中的对象进行客户化排序,comparator 参数指定排序方式。

6,  ListIterator : List 的listIterator() 方法返回一个ListIterator 对象。

   ListIterator :  add() 向队列中插入一个元素 。

          hashNext() 判断是否还有下一个元素。

          hasPrevious() 判断列表中的上一个元素。

          next() 返回列表中的下一个元素。

          previous() 返回列表中的上一个元素。

7,  Collections 一下方法适用于List 类型的集合。

    copy(List dest,List src) 把一个List中的元素copy到另一个list中
    fill(List list,Object o) 向列表中填充元素。
    sort(List list) 自然排序。
    binarySearch(List list,Object key) 查找List 中与给定对象key相同的元素。
    binarySearch(List list,Object key,Comparator c) 调用该方法时,必须保证list 中的元素已经按照Comparator 类型的参数的比较规则排序。
    shuffle(List list) 对List中的元素进行随机排列。

Java 集合介绍的更多相关文章

  1. java集合介绍(List,Set,Map)

    前言 介绍java的常用集合+各个集合使用用例 欢迎转载,请注明作者和出处哦☺ 参考: 1,<Java核心编程技术(第二版)> 2, http://www.cnblogs.com/Litt ...

  2. JAVA集合介绍

    一.集合概述 Java是一种面向对象语言,如果我们要针对多个对象进行操作,就必须对多个对象进行存储.而数组长度固定,不能满足变化的要求.所以,java提供了集合. 特点 1.        长度可以发 ...

  3. HashSet HashTable HashMap的区别 及其Java集合介绍

    (1)HashSet是set的一个实现类,hashMap是Map的一个实现类,同时hashMap是hashTable的替代品(为什么后面会讲到). (2)HashSet以对象作为元素,而HashMap ...

  4. Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例

    概要  前面,我们已经学习了ArrayList,并了解了fail-fast机制.这一章我们接着学习List的实现类——LinkedList.和学习ArrayList一样,接下来呢,我们先对Linked ...

  5. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

    概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解Arra ...

  6. Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

    概要 学完Vector了之后,接下来我们开始学习Stack.Stack很简单,它继承于Vector.学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它. ...

  7. Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例

    概要 这一章,我们对HashMap进行学习.我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap.内容包括:第1部分 HashMap介绍第2部分 HashMa ...

  8. Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例

    概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...

  9. Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

随机推荐

  1. .NET Core的日志[5]:利用TraceSource写日志

    从微软推出第一个版本的.NET Framework的时候,就在“System.Diagnostics”命名空间中提供了Debug和Trace两个类帮助我们完成针对调试和跟踪信息的日志记录.在.NET ...

  2. CentOS6.5 FTP配置

    一:安装vsftpd 查看是否已经安装vsftpd rpm -qa | grep vsftpd 如果没有,就安装,并设置开机启动 yum -y install vsftpd chkconfig vsf ...

  3. nginx 配置多个二级域名

    server { server_name domain.com www.domain.com *.domain.com ; set $subdomain ''; if ($host ~* (\b(?! ...

  4. Plinq-Parallel.ForEach for 性能提升

    https://msdn.microsoft.com/zh-cn/library/dd460720.aspx 本示例显示如何使用 Parallel.ForEach 循环对任何 System.Colle ...

  5. amf0解释一下

    就简单记录一下省了以后忘了,amf0其实就几种数据格式的网络传输格式,比如数字,字符串,这些格式在传输的时候他给单独序列化了一下,主要支持以下这些: #define AMF0_NUMBER ((uin ...

  6. SQL性能优化的思路建议

    如何在 Oracle数据库里写出高质量的SQL语句,如何在Oracle数据库里对有性能问题的SQL做诊断和调整,这是DBA们在ORACLE数据库实践中不可避免的难题.下面就让我们来分析一下拿到一条问题 ...

  7. 【BZOJ2748】音量调节(动态规划)

    [BZOJ2748]音量调节(动态规划) 题面 Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经 ...

  8. Ubuntu 15.10下的WebStorm-11.0.3完美破解

    由于最新的JetBrains 发布了最新版本的IntelliJ IDEA的各个版本,而且更换了注册机的使用方式,这就导致了之前对WebStorm的破解方法不能在使用了.所以我们就必须另寻他法咯.如题, ...

  9. UNIX环境高级编程——UNIX基础知识

    1.用户在登陆linux系统时,先键入登录名,然后键入口令.系统在其口令文件(通常是/etc/passwd文件)中查看登录名.口令文件中的登陆项由7个以冒号分隔的字段组成,它们是:登录名.加密口令.数 ...

  10. MyBatis学习日记(三):戏说MyBatis配置文件

    properties标签 properties标签可以用来加载别的配置文件,比如可以加载数据库的配置文件,jdbc.properties. 下面是jdbc.properties jdbc.driver ...