什么是集合
集合类存放于java.util包中。
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
集合类型主要有3种:set(集)、list(列表)和map(映射)。
通俗的说,集合就是一个放数据的容器,准确的说是放数据对象引用的容器。
有哪些集合
集合主要分为Collection和Map2个接口
Collection又分别被List和Set继承
List被AbstractList实现,然后分为3个子类,ArrayList,LinkList和Vector
Set被AbstractSet实现,又分为HashSet和TreeSet
而Map衍生出的集合分为HashMap,HashTable和TreeMap
有三大集合:List Map Set
集合有哪些特点?
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());
}
}
}
|
|