集合
集合:存储任意数据类型、长度不固定
集合体系框架
区别:
ArrayList:底层是一个数组,擅长数据的查找(访问)
LinkedList:底层链表,擅长数据的修改(包括数据添加和删除)
特点:存储的数据时有序的(有序是指存储顺序),存放重复的数据,可以存放NULL值
List: add() set() remove get() contains():判断指定值是否存在,存在返回true,不存在返回false
Set集合
特点:存储无序(不再支持索引),不能存储重复数据,是否可以NULL
Set集合:HashSet,通常用来输出数据的方案:Iterator实现数据的删除和遍历
SET中不能出现重复数据:存放到Set集合的数据,不能满足元素1==元素2或元素1.equals(元素2),set集合将只保存元素1,而不会存储元素2
Map集合
Map<K,V>:存储数据是以键值对的形式存储
HashMap: 键不能重复
案例
使用HashMap集合类
需求说明:按照以下实现的步骤,使用HashMap建立国家英文简称和中文全名间的键值映射,并通过key对value进行操作,输出效果如下图所示:
(1)使用HashMap存储多组国家英文简称和中文全称的键值对;
(2)显示"CN"对应国家的中文全称;
(3)显示集合中元素个数;
(4)两次判断Map中是否存在"FR"键;
(5)分别显示键集、值集和键值对集;
(6)清空 HashMap并判断;
public class MapDemo {
public static void main(String[] args) {
Map map=new HashMap<>();
//添加数据
map.put("CN", "中华人民共和国");
map.put("US", "美利坚合众国");
map.put("UK", "大不列颠及北爱尔兰联合王国");
map.put("JP", "日本");
//取出CN对应的国家名称
Object value = map.get("CN");
System.out.println(value);
//判断US是否存在
System.out.println(map.containsKey("USA"));
//集合的元素共个数
System.out.println(map.size());
//打印所有的key
//方案一:
Set keys = map.keySet();//获取map中所有的key,存储在set集合中
for (Object object : keys) {
System.out.print(object+",");
}
System.out.println();
//打印所有的value
//方案一:
Collection values = map.values();
for (Object object : values) {
System.out.print(object+",");
}
System.out.println();
//打印键值对
Set entrySet = map.entrySet();
for (Object object : entrySet) {
System.out.println(object);
}
}
}