集合就像数组一样,用来存放东西
常用的集合分为
List(有序排放)、Map(以名和值一一对应的存放)、Set(既无序也没名)
在这三者之中其中List和Set是Collection接口的子接口,而Map不是Collection接口的子接口
首先介绍的是集合
一、List:
为了学习List,这里介绍List的实现类:ArrayList和LinkedList
①ArrayList:索引从0开始,线性存储,有索引,有顺序
主要方法:add()用于往集合中添加元素,get()用于获取指定索引处的元素,size()获得集合的长度,相当于数组中的length
②LinkedList:也是线性存储,有索引,有顺序
它和ArrayList差不多,它有ArrayList集合中不具备的方法,如:addFirst(Object)这是往list集合的最前边添加元素的方法,相应的还有addLast等
③ArrayList和LinkedList的区别和联系:
linkedlist集合的优势:添加元素时可以指定位置,比ArrayList集合添加元素要快很多。
但Linkedlist在get获取的时候比Arraylist集合要慢的多,而且获取元素越往后检索的越慢。
这两种方式各有优缺,为更好的使用可以将这两者进行联合使用,使用Linkedlist集合进行存储和添加元素,使用Arraylist集合进行get获取元素。
二、Map:名字和值一一对应,是无序的,有名且名字不能重复
为学习Map,先从它的实现类HashMap学起。
给map添加元素是使用put方法进行添加。map.put("名",值)
获得是get(名)
在map中只要得到全部的名字就能得到所有的值
这就需要用到set来获得所有的名字:
Set keyname=map.keySet();
使用Set中的迭代器:
Iterator it=keyname.iterator();
while(it.hasNext()){
Object key=it.next(); 名
Object value=map.get(key); 值
}
三、Set:既不需要有编号也不需要有名,来了就往里放,存放速度相对较快,但取不好取
这里就常用HashSet(set的实现类)
添加元素为add()
变量获取元素:使用它的iterator()方法是执行迭代器的工具
Iterator it=set.iterator();
it.hashNext(); 判断下一个是否有
it.Next();下一个
使用while(it.hasNext()){
system.out.println(it.next());
} 输出也是无序的。