动力节点视频里的笔记汇总
1、集合概述
1.1、什么是集合?有什么用?
数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。
集合为什么说在开发中使用较多?
集合是一个容器,是一个载体,可以一次容纳多个对象。
在实际开发中,假设连接数据库,数据库当中有10条记录,那么假设把这10条记录查询出来,在java程序中会将10条数据封装成10个java对象,然后将10个java对象放到某一个集合当中,将集合传到前端,然后遍历集合,将一个数据一个数据展现出来。
1.2、集合不能直接存储基本数据类型,另外集合也不能直接存储java对象。
集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)
list.add(100); //自动装箱Integer
注意:
集合在java中本身是一个容器,是一个对象。
集合中任何时候存储的都是 “引用”。
1.3、在java中每一个不同的集合,底层会对应不同的数据结构。
往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。
什么是数据结构?
数据存储的结构就是数据结构。不同的数据结构,数据存储方式不同。例如:
数组、二叉树、链表、哈希表…
以上这些都是常见的数据结构。
你往集合c1中放数据,可能是放到数组上了。
你往集合c2中放数据,可能是放到二叉树上了。
…
你使用不同的集合等同于使用了不同的数据结构。
你在java集合这一章节,你需要掌握的不是精通数据结构。java中已经将数据结构实现了,已经写好了这些常用的集合类,你只需要掌握怎么用?在什么情况下选择哪一种合适的集合去使用即可。
new ArrayList(); 创建一个集合,底层是数组。
new LinkedList(); 创建一个集合对象,底层是链表。
new TreeSet(); 创建一个集合对象,底层是二叉树。
.....
1.4、集合在java JDK中哪个包下?
java.util.*;
所有的集合类和集合接口都在java.util包下。
1.5、集合的继承结构图
1.6、在java中集合分为两大类:
一类是单个方式存储元素:
单个方式存储元素,这一类集合中超级父接口:java.util.Collection;
一类是以键值对的方式存储元素
以键(key)值(value)对的方式存储元素,这一类集合中超级父接口:java.util.Map;
2、Collection接口
2.1、 Collection中存储的元素
没有使用泛型之前,能存储Object 的所有子类,使用了“泛型”之后,只能存储某个具体的类型。
2.2、常用方法
返回值类型 | 方法 |
---|---|
boolean | add(Object o);向集合中添加元素 |
boolean | remove();删除集合中某个元素,底层调用equals()方法 |
int | size();获取集合中元素的个数 |
boolean | isEmpty();判断集合中元素的个数是否为0 |
void | clear();清空集合 |
boolean | contains(Object a);判断当前集合中是否包含元素o,包含返回true,不包含返回false。底层调用equals()方法 |
Object | toArray();把集合转换成数组 |
重点:contains()方法
放在集合中的元素要重写equals方法,否则调用contains方法时比较的是地址。
Collection c = new ArrayList();
String s1 = new String("abc");
String s2 = new String("def");
c.add(s1);
c.add(s2);
String x = new String("abc");
System.out.println(c.contains(x));//结果为true,底层调用equals方法,String重写了equals()方法,比较的是值是否相等。
重点:iterator()方法,返回iterator类型
迭代器中的方法:
boolean hasNext(),这个方法返回true,表示有元素可以迭代。
Object next(),这个方法让迭代器前进一位,并且将指向的元素返回(拿到&#x