学习方法:3W1H
what:这个要学的东西是什么?
why:为什么要学这个东西?
where:在哪里可以用到这个东西?
1.(what)什么是集合?
集合是指具有某种特定性质的具体的或抽象的对象汇总的集体,这些对象称为该集合的元素。
简单一点就是:集合就是“确定的一堆东西”,集合里的“东西”叫做元素。
2.(why)为什么要学习集合?
面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array(数组)
存储对象方面具有一些弊端,需要提前对数组进行容器大小的的设定,而Java集合就像一个容器,可以动态地把多个对象的引用放入容器中,不要提前设置容量大小。存多少就是多少。
3.有哪些集合?
有三大集合:List Map Set
4.集合有哪些特点?
1.List
特点:元素是有序的(怎样放进去就怎样显示),内容可以重复
Arraylist:数组结构,查询快,增删改慢。
LinkedList:链表结构,查询慢,增删改快。
Vector:增删查改都慢。
LinkedList有特有的开头和结尾的方法addFirst(),addLast();
使用场景:制作贪吃蛇游戏。
2.Set
特点:元素是无序的(但是它进行的排序),内容不可以重复
hashSet:可以添加空值
treeSet:不可以添加空值
使用场景:比如一个学校里,班级的班级编号不可以重复
3.Map
hashMap:可加空值(无序)
hashTable:不能加空值(无序)
treeMap:可以加空值(有序)
迭代Map(遍历):
1.获取所有的键,在根据键获取值
方法名:keySet();
2.获取所有的值
方法名:values();
3.获取键和值(一个一个的获取)
方法名:entrySet();
代码实现迭代Map
public class TestMap {
//键值对
public static void main(String[] args) {
Map<String, Object> map=new HashMap<String, Object>();
map.put("A", "AAAA");
map.put("2", "2222");
map.put("3", "3333");
map.put("王", "大小王");
//遍历
//01.获取所有的键,再根据键获取值
Set<String> strings=map.keySet();
for (String string : strings) {
System.out.println(string+":"+map.get(string));
}
//02.获取所有的值
Collection<Object> collection=map.values();
for (Object object : collection) {
System.out.println(object);
}
//03.获取键和值(一个一个)
Set<Entry<String, Object>> entries=map.entrySet();
for (Entry<String, Object> entry : entries) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}