(1)集合是什么:
作为一种容器,比数组要灵活,可以用来存储不同类型的数据。
(2)集合和数组的区别:
数组的长度是固定的,集合的长度是可变的
数组既能存储基本数据类型,又能存储引用数据类型,集合只能存储引用数据类型
数据存储同一种数据类型,集合可以存储多种数据类型
(3)相关的类和方法
1.ArrayList():
构造一个初始容量为 10 的空列表。
2.对象名.add():
添加一个元素到集合中去
3.remove(Object o):
移除此列表中首次出现的指定元素(如果存在)。
4.remove(int index):
移除此列表中指定位置上的元素。
注:List里面特有的方法,根据索引移除元素,如果区分不出来索引和int类型数据,可以手动包装一下
5.addAll(Collection B):
给一个集合添加进另一个集合中的所有元素
6.clear():
移除所有元素
7.boolean removeAll(Collection B):
移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素
如果没有交集元素 则删除失败 返回false
8.boolean contains(object O):
判断集合中是否包含指定的元素
9.boolean containsAll(Collection c):
判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)
10.boolean isEmpty():
判断集合是否为空
11.toArray():
返回包含此 collection 中所有元素的数组。
public class Demo { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(10); list.add(11); list.add(12); list.add(13); for(int i=0;i<list.size();i++){ Object o = list.get(i); System.out.println(o); } Object[] objects = list.toArray(); System.out.println(Arrays.toString(objects)); } }(4)迭代器iterator():
作用===对 collection 进行迭代的迭代器。
1.hasNext():
如果仍有元素可以迭代,则返回 true。
2.next():
返回迭代的下一个元素。
3.remove():
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
(5)演示:
public class MyTest5 { public static void main(String[] args) { List list = new ArrayList(); //多态 list.add("张三"); list.add("李四"); list.add("王五"); list.add("赵六"); //遍历List集合的方式1 Iterator iterator = list.iterator(); while (iterator.hasNext()){ Object next = iterator.next(); System.out.println(next); } System.out.println("--------------------------------------"); //使用for循环来遍历List集合 for (int i = 0; i < list.size(); i++) { Object o = list.get(i); System.out.println(o); } } }使用迭代器可以避免向下转型
(1)概述:
数据结构其实就是存储数据的格式
(2)分类:
1.栈
弹夹形式,先进的后出。
2.队列
先进的先出,后进的后出。
3.数组
查询快(有索引),增删慢。
4.链表
查询慢,增删快。
(3)list的三个子类特点
ArrayList:
底层数据结构是数组,查询快,增删慢,线程不安全,效率高。元素有序,允许存储重复元素
Vector:
底层数据结构是数组,查询快,增删慢,线程安全,效率低
LinkedList:
底层数据结构是链表,查询慢,增删快,线程不安全,效率高