Java集合

这篇博客详细介绍了Java集合框架,包括集合的定义、分类,以及Collection、List、Set和Map四个主要接口的特性和常用实现类。重点讲解了ArrayList、LinkedList、HashSet、TreeSet和HashMap、TreeMap的区别和使用场景,强调了它们的底层数据结构和操作效率。
摘要由CSDN通过智能技术生成

1 什么是集合

1.1 集合的介绍

​ 集合实际上就是一个容器,可以用来容纳其他类型的数据,数组相当于一个最简单的集合

​ 集合在java中本身就是一个容器,是一个对象,是一个引用数据类型

​ 集合容器中存储的其实是每个对象的内存地址,每个内存地址指向各自的对象

​ 集合里面可以套集合

​ java中每一个不同的集合,底层都会对应不同的数据结构,往不同的集合中存储元素,等于将数据放到了不同的数据结构中,数据结构 就是数据存储的结构,不同的数据结构,数据存储方式不同
​ 例如:数组,二叉树,链表,哈希表

​ 所有的集合都是可迭代的,可遍历的

1.2 集合的分类

​ java中集合分为两大类:
​ 一类是单个方式存储元素(对象)
​ 以单个方式存储元素,这一类的集合中超级父接口:java.util.Collection

​ 一类是以键值对的方式存储元素(对象)
​ 以单个方式存储元素,这一类的集合中超级父接口:java.util.Map

​ 在java中,数据结构已经写好了常用的工具类Collections
​ 需要掌握怎么用,在合适的情况下选择合适的集合
​ new不同的对象,会创建一个底层数据结构不同的集合

​ 所有的集合类和集合接口,都在java.util.*下边

​ Map下的集合不能使用Collections工具类

2 Collection

2.1 Collection中能存放什么元素

​ 没有使用泛型之前,Collection中可以存储Object的所有子类型

​ 使用泛型之后,Collection中只能存储某个具体的类型

2.2 Collection中常用的方法

​ boolean add(Object e) 向集合中添加元素

//创建一个集合对象
//Collection collection = new Collection(); 接口是抽象的,无法实例化
//多态
Collection c = new ArrayList();
c.add(1200);//自动装箱
c.add(3.14);//自动装箱
c.add(new Object());
c.add(new Student());
c.add(true);//自动装箱

​ int size() 获取集合中元素的个数

//获取集合中元素的个数
System.out.println("集合中元素个数为:"+c.size());

​ void clear() 清空集合

//清空集合
c.clear();
System.out.println("集合中元素个数为:"+c.size());//0

​ boolean contains(Object o) 判断当前集合中是否包含元素o,包含返回true,不包含返回false

c.add("hello");
c.add("world");
//判断集合中是否包含hello
boolean b = c.contains("hello");
System.out.println(b);//true

​ void remove() 删除集合中某个元素

//删除集合中某个元素
c.remove("hello");
System.out.println(c.contains("hello"));//false

​ boolean isEmpty() 判断集合是否为空

//判断集合是否为空
System.out.println(c.isEmpty());//false
c.clear();
System.out.println(c.isEmpty());//true

​ Object[] toArray() 将集合转换为数组 [作为了解,使用不多]

//将集合转换为数组
Object[] objects = c.toArray();
System.out.println(Arrays.toString(objects));//[world]

​ boolean retainAll() 保留指定集合中的元素

2.3 关于Collection遍历/迭代专题

​ Iterator迭代器,只能在所有的Collection及其子类中使用,Map集合下不能用,因为Collection继承了Iterable接口

public interface Collection<E> extends Iterable<E>
//如下的遍历方式/迭代方式,是所有Collection通用的一种方式
//创建集合对象
Collection c = new ArrayList();//
//添加元素
c.add("hello"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值