java中阶之集合

本文介绍了Java中的集合框架,包括List和Set两种主要类型。List如ArrayList和LinkedList的特点和操作,以及Set如HashSet和TreeSet的存储机制。此外,还讲解了集合的基本操作如添加、删除、修改和查询,以及HashSet的剔重原理和TreeSet的存储要求。
摘要由CSDN通过智能技术生成

在这里插入图片描述

二十一.集合

1.作用

动态的存储一组数据类型相同的数据

2.特点

长度可变

3.名称

长度:集合中存在的元素个数

下标:元素在集合中的位置

元素:集合中存储的数据

4.体系结构

1.Collection

分类:List,Set

List
	特点:有序(存入好人取出顺序一致),由下标,可以重复
	子类:
		ArrayList:
			特点:JDK1.2出现,线程不安全的
			数据结构:数组
			特点:查询效率高,增删效率低
		LinkedList
  	特点:查询效率低,增删效率高
  	数据结构:链表
  Vector:
  	特点:JDK1.0出现,线程安全
  	数据结构:数组
Set
	特点:无序,无下标,元素不允许重复
	子类:
		HashSet
			底层:HashMap
			数据结构:
				JDK1.8以前数组+链表
				JDK1.8之后数组+链表+红黑叔树
		TreeSet
  	数据结构:红黑树
  	注意:指定比较规则
  LinkedHashSet
  	特点:有序
  	数据结构:数组+双向链表

Collection提供的方法

增:
	boolean add(E e)
		作用:一次添加一个数据
		参数:要添加的数据
		返回值:是否添加成功
	boolean addAll(Collection<? extends E> c);
	作用:一次添加一组数据
	参数:要添加的数据集合
	返回值:
		是否添加成功,哪怕只添加一个也算成功,全部失败才是失败

删:
	boolean remove(Object o)
		作用:一次删除一个数据
		参数:要删除的数据
		返回值:是否删除成功
		注意:如果集合中有多个要删除的数据,智能删除第一个
	boolean removeAll(Collection<?> c)
	作用:一次删除一组数据
	参数:要删除的数据集合
	返回值:是否删除成功
	注意:如果原集合中多次出现删除集合中的数据,那么元集合中的该数据会全部被删除
void clear()
	作用:清空集合中的数据
查:
	int size()
		作用:查询集合长度
	boolean contains(Object o);
	作用:判断集合中是否包含指定元素
boolean containsAll(Collection<?> C)
	作用:判断集合中是否全部包含指定的集合中的元素
	注意:判断的是是否全部包含
boolean isEmpty();
	作用:判断集合是否为空集合
	注意:空集合表示集合中没有元素,而不是集合为null
Iterator<E> Iterator()
	作用:获取当前集合的迭代器
	迭代器方法:
		boolean hasNext();判断下一个是否有值
		E next(); 移动游标,并返回指向的数据

特殊情况

遍历:
	迭代器
	foreach

5.List提供的方法

增:
	void add(int index, E element)
	作用:给指定位置插入一个数据
    void addAll(int index,Collection<E> C)
    作用:给指定位置插入一组数据
    
删:
	E remove(int index)
		作用:删除指定位置的数据

改:
	E set(int index,E element)
		作用:修改指定位置的元素
		参数:1参,指定的位置;2参,修改后的元素
	
查:
	E get(int index)
		作用:获取指定位置的元素

6.HashSet的剔重原理

1.存入对象先判断对象的hashCode值是否与已经存储的数据hashcode值是否相同
2.如果相等,在使用本次存入的对象与集合中的对象使用equals方法一一比较
3.如果equals也相同,认为对象已经存储,将不再存入该对象

7.TreeSet存储

TreeSet存储的数据
要么拥有比较性(让存储的对象的类实现Comparable)
要么指定比较器(创建TreeSet传入Comparator对象)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半糖不加奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值