JAVA集合框架
Collection
定义
一个接口,目的是存储不唯一无序的对象
List
定义
一个继承Collection的接口,目的是存储不唯一有序的对象
公用方法
代码语言:javascript复制Object remove(int index)//移除下标元素,并返回该元素
boolean remove(Object o)//移除某元素
boolean contains(Object o)//是否包含元素
Object get(int index)//获取某下标的元素
int size()//获取元素的个数
void add(int index,Object o)//在指定的索引添加元素
boolean add(Object o)//在末尾添加元素
//也就是说下面所有的实现类都有该方法
ArrayList
定义
实现了长度的可变数字,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
LinkedList
定义
采取链表的存储方式,插入、删除元素的效率比较高
个性方法
代码语言:javascript复制void addFirst(Object o)//在首部添加元素
void addLast(Object o)//在最后添加元素
Object getFirst()//获取第一个元素
Object getLast()//获取最后一个元素
Object removeFirst()//移除第一个
Object removeLast()//移除最后一个
Set
定义
一个继承Collection的接口,目的是存储唯一无序的对象
Map
定义
一个接口 ,目的是存储一组键值对象(key:value)
常用的方法
代码语言:javascript复制Object put(Object key, Object val)//已键值对的形式进行存储
Object get (Object key)//根据键取值
Object remove (Object key)//根据键删除键值对
int size()//返回元素的个数
Set keySet ()//返回键的set集合
Collection values ()//返回值的集合
boolean containsKey (Object key)//是否包含某个键映射的键值对
遍历map
迭代器遍历iterator遍历
1.获取iterator:使用Collection接口的iterator()方法
2.terator的方法
代码语言:javascript复制boolean hasNext()//判断是否存在另一个可访问的元素
Object next()//返回要访问的下一个元素
3.举例
代码语言:javascript复制Set keys=dogMap.keySet(); //取出所有key的集合
Iterator it=keys.iterator(); //获取Iterator对象
while(it.hasNext()){
String key=(String)it.next(); //取出key
Dog dog=(Dog)dogMap.get(key); //根据key取出对应的值
System.out.println(key "t" dog.getStrain());
}
增强for循环
举例
代码语言:javascript复制Set keys=dogMap.keySet();
for(String key : keys) {
Dog dog=(Dog)dogMap.get(key);
System.out.println(key "=" value);
}
泛型集合
由来
因为在集合操作的时候涉及到很多的强制类型转换的问题,所以在我们的jdk1.5后就使用了泛型改写了集合框架
举例
代码语言:javascript复制List <Dog> dogs = new ArrayList<Dog>();
//好处 1.无需强2.转类型有问题就主动报错,减少异常发生