java 集合类Collection和Map
集合类
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的方式。
数组和集合类都是容器,他们有什么不同?
数组虽然也可以存储对象,长度是固定的;集合的长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。
集合类的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
注意:每一个容器的存储方式都有不同,这个存储方式称之为:数据结构
Collection
public class Cc {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add("day02");
list1.add("day03");
list1.add("day05");
list1.add("day06");
list1.add("day07");
list1.add("day08");
System.out.println(list1);
Iterator it= list1.iterator();//得到指定位置元素
System.out.print(list1.get(2));
System.out.println(list1.get(3));
System.out.println(list1.remove(5));//删除指定元素
System.out.println(list1.remove(2));//删除指定元素
// while(it.hasNext())
// System.out.println(it.next()+",");//迭代器
// System.out.println(it.next()+",");
// System.out.println(it.next()+",");
// System.out.println(it.next()+",");
// System.out.println(it.next()+",");
// System.out.println(it.next()+",");
}
}
什么是迭代器?
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。
迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。
然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
Collection中常见的两个接口List 和 Set
List:元素是有序的,元素可以重复,因为该元素有索引。
增:add(index,element);
addAll(index,Collection)
删:remove(index);
改:set(index,element);
查:get(index);
subList(from,to);
ListIterator();
列表迭代器:
List集合特有的迭代器,ListIteractor是Iteractor的子接口。
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定 的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
ArrayList:
底层的数据结构使用的是数组结构;特点:查询速度很快,但是增删就较慢(针对元素比较多)
linkedList:
底层是链表数据结构。 特点:增删掉速度很快,查询的时候较慢
vector:底层是数组数据结构。 和ArrayList一样,区别:线程同步