JAVA-集合

1 集合概述

集合是ava中存储对象数据的一种容器。

  • 注意:集合中只能存储引用类型数据,如果要存储基本类型数据可以选用包装类。
  • 集合适合的场景:数据的个数不确定,需要进行增删元素的时候。

2Collection集合的体系特点

各种集合的关系:

 

小结:

1、集合的代表是?
        Collection接口(集合的祖宗接口)
2、Collection集合分了哪2大常用的集合体系?

  • Lst系列集合:添加的元素是有序、可重复、有索引。
  • Set系列集合:添加的元素是无序、不重复、无索引。

3、如何约定集合存储数据的类型,需要注意什么?

  • 集合支持泛型。
  • 集合和泛型不支持基本类型,只支持引用数据类型。


3 Collection集合常用API

  • 两个集合合并的方法a'd'dAll()


4 Collection集合的遍历方式(不支持索引)

  • 方式一:迭代器

  • 遍历就是一个一个的把容器中的元素访问一遍。
  • 迭代器在到ava中的代表是Iterator,迭代器是集合专用遍历方式。

Collection<String> lists = new ArrayList<>();
lists.add("赵敏");
lists,add("小昭");
lists,add("素素");
lists,add("灭绝");
System.out.println(lists);
//[赵敏,小昭,素素,灭绝]

//1、得到当前集合的选代器对象。
Iterator<String> it = lists.iterator();
String ele = it.next();
//iterator.next:先取值后移位
System.out.println(ele);
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());

//2、定义while循环
while (it.hasNext()){
    String ele it.next();
    System.out.println(ele);
}

  • 方式二:foreach/增强for循环

  • 增强fo循环:既可以遍历集合也可以遍历数组
  • 它是JDK5之后出现的,其内部原理是一个terator迭代器,遍历集合相当于是迭代器的简化写法。
  • 实现Iterable接口的类才可以使用迭代器和增强for,  Collection:接口已经实现了Iterable接口。

public class CollectionDemo02{
	public static void main(String[] args){
		Collection<String>lists new ArrayList<>();
		lists,add("赵做");
		lists.add("小昭");
		lists,add("股素素"):
		lists.add("周芷若"):
		System.out.println(lists);
		//[赵做,小昭,股素素,周芷若]

		for (String ele : lists){
			System.out.println(ele);
		}
	}
}
  • 方式三:lambda表达式

Lambda表达式遍历集合

  • 得益于JDK8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式。

Collection结合Lambda遍历的API:

 代码简化例子:

5 Collection集合存储自定义类型的对象

案例代码:

 内存原理:


6 常见数据结构(略)

数据结构概述、栈、队列
数组
链表
二叉树、二叉查找树
平衡二叉树
红黑树


7 List系列集合
8 补充知识:集合的并发修改异常问题
9 补充知识:泛型深入

10补充知识:红黑树

红黑树是一种自平衡的二叉查找树,是计算机科学中的一种数据结构。

添加节点:

  • 添加的节点的颜色,可以是红色的,也可以是黑色的。
  • 默认用红色效率高。

规则如下:

  • 每一个节点或是红色的,或者是黑色的,根节点必须是黑色
  • 如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nl,这些N视为叶节点,每个叶节点(Nil)是黑色的:
  • 如果某一个节点是红色,那么它的子节点必须是黑色(不能出现两个红色节点相连的情况
  • 对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点。

红黑树增删改查的性能都很好

11 不可变集合

不可变集合的特点?

  • 定义完成后不可以修改,或者添加、删除

如何创建不可变集合?

  • List、Set、Map接口中,都存在of方法可以创建不可变集合。

代码示例:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值