JAVASE集合部分上(Collection)

动力节点视频里的笔记汇总

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、集合的继承结构图

Collection继承结构图
map继承结构图

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值