学习笔记十五:Java之集合(一)

知识改变命运技能成就事业!


本讲内容:集合 collection

导入包    import java.util.*;

一、区分集合 collection 的三个概念:

1、colection 集合,用来表示任何一种数据结构(Object)

2、Collection 集合接口,指的是 java.util.Collection接口,是 Set、List 和 Queue 接口的超类接口

3、Collections 集合工具类,指的是 java.util.Collections 类。


下面是一个集合之间的关系图:


从上面图可以看出java集合类主要有以下几种:

List结构的集合类:ArrayList类、LinkedList类、Vector类、Stack类

Map结构的集合类:HashMap类、Hashtable类

Set结构的集合类:HashSet类、TreeSet类

Queue结构的集合类:Queue接口



二、Collection 接口
Collection接口是 Set 、List 和 Queue 接口的父接口,提供了多数集合常用的方法声明,如下:

add(E e)
将指定对象添加到集合中
remove(Object o)
将指定的对象从集合中移除,移除成功返回true,不成功返回false
contains(Object o)
查看该集合中是否包含指定的对象,包含返回true,不包含返回flase
size()
返回集合中存放的对象的个数。返回值为int
clear()
移除该集合中的所有对象,清空该集合。
iterator()
返回一个包含所有对象的iterator对象,用来循环遍历
toArray()
返回一个包含所有对象的数组,类型是Object
toArray(T[] t)
返回一个包含所有对象的指定类型的数组

下面举一个把集合转成数组的例子,因为Collection本身是个接口所以用它的实现类ArrayList:

<span style="font-size:18px;">public class Text {
	public static void main(String[] args) {
		String a = "a", b = "b", c = "c";
		Collection<String> list= new ArrayList <String>();
		list.add(a);
		list.add(b);
		list.add(c);
		String[] array = list.toArray(new String[1]);
		for (String s : array) {
			System.out.println(s);
		}
	}
}</span>
输出 :a b c


三、集合有4种基本形式,其中前三种的父接口是Collection
1、List 关注事物的索引列表
2、Set 关注事物的唯一性
3、Queue 关注事物被处理时的顺序
4、Map 关注事物的映射和键值的唯一性


四、介绍比较重要的接口和类

(1)、List接口
List 关心的是索引,允许有相同的元素与其他集合相比,List特有的就是和索引相关的一些方法:

get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。


1、ArrayList 可以将它理解成一个可增长的数组,它提供快速迭代和快速随机访问的能力。
2、LinkedList 中的元素之间是双链接的,当需要快速插入和删除时LinkedList成为List中的不二选择。
3、Vector 是ArrayList的线程安全版本,性能比ArrayList要低,现在已经很少使用


(2)、Set接口   Set关心唯一性,它不允许重复。

1、HashSet 当不希望集合中有重复值,并且不关心元素之间的顺序时可以使用此类。
2、LinkedHashset 当不希望集合中有重复值,并且希望按照元素的插入顺序进行迭代遍历时可采用此类。
3、TreeSet 当不希望集合中有重复值,并且希望按照元素的自然顺序进行排序时可以采用此类。(自然顺序意思是某种和插入顺序无关,而是和元素本身的内容和特质有关的排序方式,譬如“abc”排在“abd”前面。)


(3)、Queue接口      Queue用于保存将要执行的任务列表。

1、LinkedList 同样实现了Queue接口,可以实现先进先出的队列。
2、PriorityQueue 用来创建自然排序的优先级队列。


(4)、Map接口
Map关心的是唯一的标识符。他将唯一的键映射到某个元素。当然键和值都是对象。


1、HashMap 当需要键值对表示,又不关心顺序时可采用HashMap。
2、Hashtable 注意Hashtable中的t是小写的,它是HashMap的线程安全版本,现在已经很少使用。
3、LinkedHashMap 当需要键值对,并且关心插入顺序时可采用它。
4、TreeMap 当需要键值对,并关心元素的自然排序时可采用它。



本讲就到这里,Take your time and enjoy it


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值