JAVA集合、泛型、Stream流学习总结笔记

本文详细总结了Java中的集合、泛型和Stream流。从集合与数组的区别开始,介绍了Collection的体系结构,包括List(ArrayList、LinkedList)和Set(HashSet、LinkedHashSet、TreeSet)的特性和使用。接着探讨了Map的结构和常用API,如HashMap、LinkedHashMap、TreeMap以及Map的遍历方式。文章还涵盖了泛型的概念,包括泛型类、方法、接口和通配符。最后,讲解了Stream流的获取、中间操作、终结方法及其在集合操作中的应用。
摘要由CSDN通过智能技术生成

目录

1.集合与数组的对比,及使用场景

2.Conllection集合的体系结构

3.collection集合的常用API

3.1 List集合特有方法(List类继承自Collection类)

3.1.1 ArrayList集合 (ArrayList类继承自List类)

3.1.2 LinkedList集合(LinkedList类继承自List类)

3.2 Set集合特点(Set类继承自Collection类)

3.2.1 HashSet集合(HashSet类继承自Set类)

3.2.2 LinkedHashSed集合(LinkedHashSet类继承自Set类)

3.2.3 TreeSet集合(TreeSet类继承自Set类)

4.Map集合的体系结构

4.1 Map集合概述、使用场景、特点 

5.Map集合常用API

5.1 Map集合遍历方式一(键找值)

5.2 Map集合遍历方式二(键值对)

5.3 Map集合遍历方式三(Lambda表达式,主要使用方式,JDK8开始可以使用)

5.4 HashMap集合(HashMap类继承自Map类)

5.5  LinkedHashMap集合(LinkedHashMap类继承自Map类)

5.6 TreeMap集合(TreeMap类继承自Map类)

5.7 Map集合的嵌套 

6.不可变集合

7.集合的迭代器遍历

8.增强for循环的遍历使用方式

9.集合的并发修改异常问题

10.可变参数、操作集合的工具类Collections

11.Stream流

11.1 Stream流获取

11.2 Stream流的常用API(中间操作方法)

11.3 Stream流的终结方法

11.4 Stream流的收集和收集使用的API

12.泛型

12.1 泛型类 

12.2 泛型方法

12.3 泛型接口

12.4 泛型通配符,泛型上下限


1.集合与数组的对比,及使用场景

集合的使用场景:

6.如果对象需要键值对,使用Map集合类,例如购物车系统中商品对象与其购买数量。

———————————————————————————————————————————

2.Conllection集合的体系结构

———————————————————————————————————————————

3.collection集合的常用API

———————————————————————————————————————————

3.1 List集合特有方法(List类继承自Collection类)

List集合特点:有序,可重复,有索引

———————————————————————————————————————————

3.1.1 ArrayList集合 (ArrayList类继承自List类)

ArrayList集合特点:底层是基于数组实现的,查询元素快,增删相对慢

扩展:如果ArrayList集合存储的元素超过容量会按照1.5倍扩容。

———————————————————————————————————————————

3.1.2 LinkedList集合(LinkedList类继承自List类)

LinkedList集合特点:底层是基于双链表实现的,查询元素相对慢,增删首尾元素非常快

 扩展:LinkedList用来做栈储存的时候,可用push()方法替代addFirst();pop()方法替代removeFirst(),方法功能完全一样,只是名字不同,为的是体现出一种压栈、弹栈的思想,显得更专业。

———————————————————————————————————————————

3.2 Set集合特点(Set类继承自Collection类)

———————————————————————————————————————————

3.2.1 HashSet集合(HashSet类继承自Set类)

HashSet集合特点:底层采取哈希表存储数据,哈希表是一种对于增删改查性能都较好的结构。

哈希表的组成:

JDK8之前底层使用数组+链表组成;

JDK8之后底层使用数组+链表+红黑树组成。

原理:

JDK8之后当链表长度超过8时自动将链表转换为红黑树

———————————————————————————————————————————

3.2.2 LinkedHashSed集合(LinkedHashSet类继承自Set类)

与HashSed集合相比只是多了一个双链表记录存储顺序

———————————————————————————————————————————

3.2.3 TreeSet集合(TreeSet类继承自Set类)

TreeSet集合特点:TreeSet集合是一定要排序的,对于数值类型Integer、Double官方默认按照升序排序,字符串型默认按照首字符编号升序排序,若要存储自定义类型则需要自定义排序规则。

重写比较规则示例:

 

两种方式中关于返回值规则: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值