数据结构,集合(Collection),对象数组

it2022-05-05  184

数据结构,集合(Collection),对象数组

集合

(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:

底层数据结构是链表,查询慢,增删快,线程不安全,效率高


最新回复(0)