JavaSe——7、集合简介

集合

概念:

用于保存数量不确定数据以及有映射关系的数据,在java.util包下,只能保存对象。(数组可以保存基本类型和对象)。

集合类主要有Collection和Map两个接口派生出去。

家族关系图:

Collection接口:
这里写图片描述

Map接口:
这里写图片描述

更具体的图:
这里写图片描述

更更具体的图:
https://img-blog.csdn.net/20160124221843905
from
http://blog.csdn.net/u010887744/article/details/50575735

整体介绍:

Collection派生出的子接口有Set、List和List,其中Set代表无序集合,即没有序号,因此不可重复,只能通过值来获取元素。List代表有序集合,可以重复,通过序号来区分,可以通过序号来获取元素。

Map保存的是键值对,也就是一个key到value的映射,key不可重复,value可以。

Collection

public interface Collection<E> extends Iterable<E> {}

成员:
这里写图片描述

Collection接口继承了Iterable接口,Collection的子类(子接口)都拥有(规定了)这些方法,包括常用的add、size、iterator等。

Iterator

又名迭代器,用来遍历Collection集合中的元素。

扫描二维码关注公众号,回复: 947443 查看本文章
  • hasNext();
  • next();
  • remove();
  • 迭代的两种:
Collection books = new HashSet();
Iterator it = books.iterator();
    while(it.hasNext){
        String book = (String)it.next();
    }
  • 迭代时不能改变books的内容,否则引发异常。
Collection books = new HashSet();
for(String a :books){
    syso(a);
}
  • 在迭代集合的时候,尽量用iterator迭代,而不要用如下这种:
for(int i = 0;i<list.size();i++){
    if(list.get(i)>5){
            list.remove(i);
    }
}

可以看到,迭代时修改迭代对象是不允许的,iterator会报fast-fail错误,而这种则不会报错。

集合类也可以分为Set、List和Map三种。

猜你喜欢

转载自blog.csdn.net/lk7688535/article/details/77753916
今日推荐