集合的总结
2018-07-12 07:34:59来源:博客园 阅读 ()
List
List:有序(存入和取出的顺序一致),元素都有索引值,元素可以重复。
* Set:元素不能重复,无序。
*
**** List:特有的常见方法:有一个共性的特点就是可以操作角标。
*1.添加
* void add();
*
* 2.删除
* Object remove(index)
*
* 3.修改
* Object set (index,element)
*
* 4.获取
* Object get(index)
* int indexOf(object)
* List subList(from,to)
* List:
* 1.Vector 内部是数组数据结构,是同步的。增删,查询都很慢。
* 2.ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。
* 3.LinkedList:内部是链表数据结构,是不同步的。增删元素的速度是很快的。
除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。
这些操作允许将链接列表用作堆栈、队列或双端队列。
Set
Set:元素不可以重复,是无序,并且最多包含一个 null 元素
|--TreeSet:可以对Set集合中的元素进行排序,是不同步的
判断元素唯一性的方法:就是根据比较方法返回是否是0。
TreeSet对元素进行排序的方式之一:
让元素自身具备比较功能,元 素就需要实现Comparable接口。覆盖compareTo方法。
如果不要按照对象中具备的自然顺序进行排序。如果对象中不具备自然顺序,可以使用
TreeSet集合的第二种排序方式之二:
TreeSet不能直接对元素进行比较,它是根据元素的比较结果排序,如果元素不具备比较功能,让集合自身具备比较功能。
定义一个类实现Comparator接口,覆盖compare方法。
将该类对象作为参数传递给TreeSet集合的构造函数。
集合的一些技巧:
需要唯一吗?
需要:Set
需要制定顺序:
需要:TreeSet
不需要:HashSet
但是想要一个和存储一致的顺序:LinkedHashSet
不需要:List
List有着和存储一致的顺序
需要频繁增删吗?
需要:LinkedList
不需要:ArrayList
Map
Map:一次添加一对元素。Collection一次添加一个元素
Map也称为双列集合,Collection集合称为单列集合
其实map集合中存储的就是键值对。
map集合中必须保证键的唯一性。
常用方法:
1.添加
value put (key,value):返回前一个和key关联的值,如果没有返回null
2.删除
void clear():清空map集合
value remove():根据指定的key翻出这个键值对
3.判断
boolean containsKey(key)
Boolean contiansValue(value)
Boolean isEmpty()
4.获取
value get(key):通过键获取值,如果没有该键返回null
当然可以通过返回null,来判断是否包含指定键,
5.获取大小
int size():获取键值对的个数。
Map常用的子类:
|---Hashtable:内部结构是哈希表,是同步的。不允许null作为键,null作为值。
|--Properties:用来存储键值对的配置文件的信息,可以和io技术相结合。
|---HashMap:内部结构是哈希表,不是同步的。允许null作为键,null作为值。
|---LinkdedHashMap:内部结构是哈希表和链表,迭代顺序和存储数据一致,不是同步的。
|---TreeMap:内部结构是红黑树,不同步,可以对Map集合中的键进行排序。
编程技巧:当TreeMap被填充后,就可以调用keySet(),取得key组成的Set,然后使用toArray()方法生成key的数组(集合collection中的类都有toArray()方法),接下来使用Array的binarySearch()方法在已排序的数组中快速查找对象。
如何记录每个容器的结构和所属体系?
看名字:
List
ArrayList
LinkedList
Set
HashSet
TreeSet
后缀名即是该集合的体系。
前缀名即是该集合的数据结构。
看到array就要想到数组,就要想到查询快,有角标。
看到link就要想到链表,就要想到增删快,就要 add remove
看到hash就要想到哈希表,就要想到唯一性,就要想到元素覆盖hashcode和equals方法
看到tree就要想到二叉树,就要想到排序,就要想到两个接口Comparator,Comparable
而且通常这些常用的集合容器都是不同步的。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 与JAVA集合相遇 2020-06-11
- Java笔记:集合 2020-06-10
- 2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重 2020-06-09
- 总结一些 Java 相关笔试、面试题,万一用上了呢 (=_=) -- 基 2020-06-08
- Java电子书高清PDF集合免费下载 2020-06-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash