java集合框架

集合

1.概念:

看做一种容器,用来存储对象信息,所有的集合都位于java.util包下。

2.数组和集合的区别

1)数组存储的是相同的数据类型,集合可以存储不同的数据类型。
2)数组可以存储基本类型的数据,也可以存储对象,集合只能存储对象。
3)数组长度是不可变化的,一旦确定,只能存储固定个数的元素;集合可以存储数量不确定的
数据。

3.集合中包含的主要接口:java集合中有两个根接口Collection和Map派生出来的。
(1)Collection接口
1)List接口:存储有序的、可重复的元素。(底层实现是使用数组)
实现类 特点
ArrayList 主要的实现类
LinkList 链表的实现方式,主要进行频繁的删除查找操作
Vector 线程安全的动态数组
2)Set接口:存储无序的,不可重复的元素。(添加相同的数据只存储一份)
实现类 特点
HashSet 主要的实现类
LinkedHashSet HashSet的一个子类,根据元素的hashcode值来决定存储的位置,也是使用链表维护元素的顺序(性能低于hashSet)
TreeSet 是SortedSet 接口的实现类,可以保证元素处于排序状态,默认是自然排序

自然排序:TreeSet会调用集合元素的compareTo(Object)方法比较元素的大小关系,然后将元素升序排列。

3)Queue接口(队列)
(2)Map接口:存储的数据是键值对<key,value>

key:是不能重复的,使用Set来存储
value:是可以重复的,使用Collection来存储

实现类 特点
HashMap 主要的实现类
LinkedHashMap
TreeMap
Hashtable 它的子类(Properties:键值对都是String类型)

层级关系如下:
在这里插入图片描述
集合常用方法代码块:

		Collection coll = new ArrayList();
		//1.size()返回集合中元素的个数
		coll.size();
		//2.add(Object obj)添加元素
		coll.add(123);
		coll.add(123);
		coll.add("a");
		coll.add(new Date());
		System.out.println(coll.size());
		System.out.println(coll);
		//3.addAll(Collection coll):将集合中 的所有元素添加到当前集合
		//Arrays有个asList(T ...a);方法将数组转化为集合
		Collection coll1 = Arrays.asList(1,2,3,4,5);
		coll.addAll(coll1);
		System.out.println(coll);
		//4.isEmpty():判断集合是否为空
		System.out.println(coll.isEmpty());
		//5.clear()清空集合中的元素
		coll.clear();
		System.out.println(coll.isEmpty());

还有下面

		Collection coll = new ArrayList();
		coll.add(123);
		coll.add("tina");
		coll.add(new Date());
		coll.add("a");
		coll.add(new Person("eric",20));
		System.out.println(coll);
		//6.contains(Object o):判断集合中是否包含指定元素
		boolean b1 = coll.contains(123);
		System.out.println(b1);
		//如果存入集合的元素是自定义对象,需要重写hashCode(),equals()	方法
		boolean b2 = coll.contains(new Person("eric", 20));
		System.out.println(b2);
		//7.remove():移除集合中的元素
		boolean b3 = coll.remove("a");
		System.out.println(b3);
		System.out.println(coll);
		//8.removeAll(Collection coll):从当前集合删除另外一个集合
		Collection coll1 = new ArrayList();
		coll1.add(123);
		coll1.add("a");
		//coll.removeAll(coll1);
		System.out.println(coll);
		//9.toArray():将集合转化为Object类型数组
		Object[] array = coll.toArray();
		System.out.println("-----------------");
		for (Object object : array) {
			System.out.println(object);		
		}
		System.out.println("---------------------");
		//10.iterator()迭代器:可以实现对集合的遍历
		//迭代器是一种设计模式,它是一个轻量级对象
		//Iterator是一个接口,是集合的迭代器
		//hasNext():判断集合中是否存在下一个元素,如果有:返回true
		//next():返回集合里的下一个元素
		Iterator iterator = coll.iterator();
		while(iterator.hasNext()) {
			Object object = iterator.next();
			System.out.println(object);
		}
(3)遍历集合方法

1.使用迭代器
2.使用for循环
3.使用增强for循环,其底层实现是使用迭代器
4.将集合转化为数组(toArray),再进行遍历

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章