集合分为三类
List 集合都是有序集合
ArrayList//数组集合 数组是连续的 被同一个数组包着 查改快 增删慢
fruits.subList(1,2)//将集合的第2个元素(包含)到第3个元素(不包含)截取成子集合
LinkedList//链表集合 链表是散碎的 有一根底层的线连接着 增删快 查改慢
链表查询慢的原因是查任何元素都只能从头查到尾
集合的基本方法 add=增加,remove=删除,set=更改,clear=删除全部
fruits.addFirst(fruit4);//在第一个位置插入信息
fruits.addLast(fruit5);//在最后一个位置插入信息 注:add也是调用addLast的方法
直接使用集合名称 输出集合里所有元素
查看集合中最后一条水果信息
Fruit lastFruit=(Fruit) ((LinkedList)fruits).getLast();
查看集合中第一条水果信息
Fruit firstFruit=(Fruit) ((LinkedList)fruits).getFirst();
Set 集合 无序集合 不允许重复的 因为没有下标区分 会导致覆盖
其中上面的方法几乎都有 没有Set方法
由于无序集合的特性没有索引值存储元素和取出元素顺序可能不一致
可以通过集合元素的hascode()方法和equals()方法区分进行判断 如果不存在则添加成功
除此之外 Set集合中的存储的元素是无序的 无法使用索引 不能用索引进行遍历集合
带冒号的for循环就是Java中的foreach循环
子类调用对象为HashSet
Map集合存储多组省份或直辖市全程和简称的”键-值对
子类调用对象为HashMap
添加值provincas.put("京","北京市");//键对值根据键寻找值 添加时需要带入两个值
显示集合中的元素个数provincas.size()
删除值根据键来删除值provincas.remove("闽");
修改的话根据键修改值就好provincas.put("京","中国");
根据键查找值provincas.get("闽");返回值是和键对位的值 provincas.containsKey("闽")返回的是一个Boolean的值
查找键值provincas.keySet()
查找值对provincas.values()
迭代器 Iterator
所有的集合都有一个方法例如fruitList.iterator();返回值是Iterator
迭代器的方法都有
hasNext判断是否存在下一个遍历元素,存在则返回true
next 返回遍历的下一个元素
remove 删除上一次next()方法返回的元素