1.集合的概念
在数学中,一般地,我们把研究对象统称为元素;把一些元素组成的总体叫做集合,也简称集,那么,在java中集合有是什么呢?这里我浅谈一下本人的理解。
集合就是由一些对象所组成的集体,该对象可以是任何东西,换句话说把任何东西归类放在一起的话它就是一个集合。
2.集合与数组
集合和数组很像,都是用来存东西的,那为什么有了数组还需要集合呢,数组和集合有什么不同呢
数组是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。也就是说我们在定义数组的时候,必须定义数组的长度。
而集合的长度可变,不需要我们定义长度,在我们添加对象的时候它的长度会自动增长,可在多数情况下使用。
3.有那些集合
1.List:list集合是java中的集合之一,特点:元素是有序的(怎样放进去就怎样显示),内容可以重复
下面是List集合的三个子类及特点
1.Arraylist:数组结构,查询快,增删改慢。
2.LinkedList:链表结构,查询慢,增删改快。有特有的开头和结尾的方法addFirst(),addLast(),即将对象添加到开头和结尾。
3.Vector:增删查改都慢。(不常用)
2.Set:Set集合是java中的集合之一,特点:元素是无序的(但是它会进行排序),内容不可以重复
下面是Set集合的两个子类及特点
1.hashSet:可以添加空值
2.treeSet:不可以添加空值
3.Map:Map集合是java中的集合之一,特点:键值对,Map集合存储的对象分为键和值,一个键对应一个值,键不可重复
下面是Map集合的三个子类及特点
1.hashMap:可加空值(无序)
2.hashTable:不能加空值(无序)
3.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());
}
}
}