set list

原创 2006年05月31日 20:55:00

Java2容器类类库的用途是“保存对象”,它分为两类:

Collection----一组独立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set不能有重复元素。

Map----一组成对的“键值对”对象,即其元素是成对的对象,最典型的应用就是数据字典,并且还有其它广泛的应用。另外,Map可以返回其所有键组成的Set和其所有值组成的Collection,或其键值对组成的Set,并且还可以像数组一样扩展多维Map,只要让Map中键值对的每个“值”是一个Map即可。

1.迭代器

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

Java中的Iterator功能比较简单,并且只能单向移动:

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

2.List的功能方法

List(interface): 次序是List最重要的特点;它确保维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(只推荐LinkedList使用)。一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和删除元素。

ArrayList: 由数组实现的List。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。

LinkedList: 对顺序访问进行了优化,向List中间插入与删除得开销不大,随机访问则相对较慢(可用ArrayList代替)。它具有方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),这些方法(没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

3.Set的功能方法

Set(interface): 存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入Set的Object必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。

HashSet: 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。

TreeSet: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。

LinkedHashSet: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。

HashSet采用散列函数对元素进行排序,这是专门为快速查询而设计的;TreeSet采用红黑树的数据结构进行排序元素;LinkedHashSet内部使用散列以加快查询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的顺序保存的。需要注意的是,生成自己的类时,Set需要维护元素的存储顺序,因此要实现Comparable接口并定义compareTo()方法。

我们为什么要使用List和Set(List,Set详解)

我们为什么要使用List和Set(List,Set详解)
  • qq_34149805
  • qq_34149805
  • 2017年04月01日 12:04
  • 925

java集合之Set与List总结

java集合总结 Set集合(理解)          (1)Set集合的特点                   无序,唯一          (2)HashSet集合(掌握)          ...
  • leeioy
  • leeioy
  • 2017年01月09日 21:24
  • 1546

List,Set,Map用法以及区别

List,Set,Map是否继承自Collection接口?  答:List,Set是,Map不是。 Collection是最基本的集合接口,一个Collection代表一组Object,即Coll...
  • vstar283551454
  • vstar283551454
  • 2013年03月17日 00:46
  • 55087

java 常用集合list与Set、Map区别及适用场景总结

list与Set、Map区别及适用场景
  • qq_22118507
  • qq_22118507
  • 2016年06月03日 09:51
  • 43718

Set和List的区别

Collection     |--List:列表。             特点:             1,有序(存储元素的顺序和取出元素的顺序一致)             2,该...
  • sd4015700
  • sd4015700
  • 2014年08月25日 13:30
  • 3377

list , set ,map 三者的用法以及区别

首先,讲一下list和set之间的相似性,list和set都是单列集合,他们有一个共同的父接口---collection。list是依次列出一个结合中的所有的元素,若集合中有重复的,同样列出,有序;s...
  • liunian02050328
  • liunian02050328
  • 2013年08月31日 16:00
  • 17044

map、list、set等常见集合的理解

简言:java中我们经常会使用到集合,比如hashmap、hashtable、arraylist、以及hashset等,还有几个比较少见的如(vector、treeset)等。其实这些都是基于list...
  • u013825231
  • u013825231
  • 2016年07月25日 20:44
  • 672

这堆面试的小知识!——Map、Set与List

面试时候被问到Set与List的区别,因为平时没有用过Set,当时没有回答上来。回来觉得还是关于Java的基本知识掌握的不够扎实,这些很基本的东西就应该了如指掌。因此上网搜寻了资料,总结一下。关系这张...
  • haelang
  • haelang
  • 2015年04月01日 17:00
  • 1234

java中Map,List与Set的区别

Set,List,Map的区别 java集合的主要分为三种类型: Set(集)List(列表)Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放...
  • SpeedMe
  • SpeedMe
  • 2014年03月28日 15:51
  • 201375

Set,List,Map的区别 Set(集) List(列表) Map(映射)

Set,List,Map的区别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数...
  • lz1012793721
  • lz1012793721
  • 2016年01月07日 21:19
  • 886
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:set list
举报原因:
原因补充:

(最多只允许输入30个字)