十八、集合类

集合类

概念:提到集合不难想到数组,集合类与数组不同之处是,数组长度是固定的,集合的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。
在这里插入图片描述

一、Collection接口

1.由于List接口与Set接口都继承了Collection接口,所以以下方法对List集合与Set集合通用。

2.常用方法
Add(E e):将指定的对象添加到集合中
Remove(Object o):将指定的对象从该集合中移除
isEmpty():返回boolean值,用于判断当前集合是否为空
isterator():返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象。
size():返回int值,获取该集合中元素的个数

eg:典型遍历集合的方法

package Hcybx;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Demo {
	public static void main(String[] args) {
		Collection<String> list = new ArrayList<String>();//实例化集合类对象
		list.add("a");
		list.add("b");
		list.add("c");
		Iterator<String> it = list.iterator();//创建迭代器
		while (it.hasNext()) {                //判断是否有下一个元素
			String str = (String)it.next();   //获取集合中元素
			System.out.println(str);
		}
	}
}

运行结果:
在这里插入图片描述

二、List集合

List集合包括List接口以及List接口的所有实现类。List集合中的元素允许重复,各元素的顺序就是对象插入的顺序。类似Java数组,用户可以通过索引来访问集合中的元素。

1.List继承了Collection中的所有方法。
get(int index):获取指定索引位置的元素
set(int index,Object obj):将集合中指定索引位置的对象修改为指定的对象。

2.List接口的常用实现类
ArrayList:允许保存所有元素,包括null;缺点:像指定索引位置插入对象或删除对象速度较慢。
LinkedList:1.在像集合中插入、删除对象时,使用LinkedList类实现的List集合的效率高。

3.对于随机访问集合中的对象,使用LinkeedList类实现List集合的效率较低。

三、Set集合

Set集合中的对象不按特点的方式排列,只是简单地把对象加入到集合中,但Set集合中不能包含重复对象。
1.Set接口常用实现类
HashSet:不保证顺序恒久不变,允许使用null元素。
TreeSet:按照自然顺序进行递增排序。也可以按照指定比较器递增排序。

四、Map集合

Map集合没有继承Collection接口,其提供的是key到value的映射。
1.Map接口:提供将Key映射到值的对象。

2.Map接口中常用的方法
put(K key, V value) 向集合中添加指定的key与value的映射关系
containsKey(Object key) 如果此映射包含指定key的映射关系,则返回true
containsValue(Object value) 如果此映射将一个或多个Key映射到此值,则返回true
get(Object key) 如果存在指定的key对象,则返回该对象对应的值,否则返回false
keySet() 返回该集合中所有Key对象形成的Set集合
values() 返回该集合中所有值对象形成的Collection集合

package Hcybx;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Demo {
	public static void main(String[] args) {
		Map <String, String> map = new HashMap<String, String>();//创建Map实例
		map.put("01", "张三"); //向集合中添加对象
		map.put("02", "李四");
		map.put("03", "王五");
		map.put("04", null);
		Set <String> set = map.keySet();//创建Map集合中所有key对象的集合
		Iterator <String> it = set.iterator();//创建集合迭代器
		System.out.println("key集合中的元素:");
		while (it.hasNext()) {
			System.out.println(it.next());
		}
		Collection <String> collection = map.values();//构建Map集合中所有values值的集合
		it = collection.iterator();
		System.out.println("values集合中的元素:");
		while (it.hasNext()) {
			System.out.println(it.next());
		}
	}
}

运行结果:
在这里插入图片描述

3.Map接口实现类
HashMap: 添加和删除映射关系效率高。
TreeMap:映射关系存在一定顺序。

发布了46 篇原创文章 · 获赞 41 · 访问量 8438

猜你喜欢

转载自blog.csdn.net/weixin_42635052/article/details/95891935