【JDBC】集合、反射和泛型复习

集合框架的作用

在实际开发中,我们经常都会对一组同类型的数据进行统一的管理操作。

前面我们学过数组,它也是对一组同类型的数据进行统一管理的,但是它有个非常大的缺点,就是长度不可变,虽然我们可以自己实现动态数组,但毕竟比较麻烦!所以中JDK中,java帮我提供类集合的概念,封装了一组很强大的、非常方便的集合框架API,让我们在开发中方便了很多!

集合中分成三大接口

Collection 、 Map 、 Iterator 这些集合的接口和类都在java.util包里

Collection

它里边专门用来存储单个单个对象,如{1,2,3,4,5}

Map

表示映射,它里边专门存储一对一对的对象,如{a=1,b=2,c=3},这种

格式我们称为键值对,前面那个是"键",后面的那个是"值"。

Iterator

迭代,专门用来遍历用的,遍历Collection和Map类型集合。

List接口

它的特点:它里面保存的元素是单个单个的,是有序的!

它有三个实现类,那么我们用的最最多的ArrayList,数组集合。

ArrayList的常用方法

①添加元素到ArrayList集合里:add(Object o)
java 复制代码
List list = new ArrayList();
list.add(10);
list.add(20);
list.add(30);
②查看ArrayList集合里的元素格式:size()
java 复制代码
list.size();
③取出ArrayList集合里的元素值:get(index)
java 复制代码
int i = list.get(0); //0是索引值,从0开始
④删除ArrayList集合里的元素:remove(index)
⑤ArrayList

可以放很多不同类型的数据进入,因为它的参数类似是Object,但是不建议这样子操作,因为很不好管理,建议在集合里都放同种类型的数据,所以,我们需要一种机制来限制add进集合的类型只能是一种,这就需要用到泛型(作用:在语法上限制集合里只能放一种类型进去)

格式:

java 复制代码
List<String> list = new ArrayList<String>();
⑥遍历List集合和数组一样
java 复制代码
for(int i=0;i<list.size();i++){ list[i] }

Map接口

特点

存放的数据是一对一对的,称为"键-值"对,在一个Map集合中"键"是不能重复的,而且每个"键"最多只能对应一个"值"

Map接口有两个实现子类,一个孙子辈实现类,我们最最常用的是HashMap这个类

HashMap的常用方法和特点

HashMap的特点:HashMap里的键可以是null,HashMap里的值也可以是null,HashMap里的"键-值"对,不是有序的,没有一个固定的顺序。

  • ①判断集合中是否存在某个键: Boolean containsKey(Object key);
  • ②判断集合中是否存在某个值: Boolean containsValue(Object vaule);
  • ③添加"键值"对进入HashMap集合中: put(k,v)

Map map = new HashMap<>();

map.put(1,"小白");

  • ④从HashMap集合中取出数值: get(key) ,通过"键"来拿"值"map.get(1);
  • ⑤将Map接口变成Set集合: Set> entrySet()

遍历HashMap集合

java 复制代码
 for
for (Entry<Integer, String> entry : map.entrySet()) {
Integer key = entry.getKey();
String val = entry.getValue();
} Entry是java.util.Map.Entry类
相关推荐
AI你一生一世42 分钟前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
布莱克6051 小时前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
云-缩影1 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
LabVIEW开发1 小时前
LabVIEW 局部变量为何引发竞争条件?四种同步机制
开发语言·labview
瑞克-桑切斯1 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
benchmark_cc2 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
Zenova EdgeOS3 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
取名真是3 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
FRing033 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Fatbobman(东坡肘子)4 小时前
快速消失的硬盘容量 -- 肘子的 Swift 周报 #160
开发语言·人工智能·redis·ios·swiftui·iphone·swift