目录
一、集合类(大家族)
(一)Collection 族长(最初的类)
(1)Set 集 元素无序、不可重复
(2)List 列表 元素有序、可重复
1、ArrayList 数组列表,底层数据结构是数组,查询效率高,增删效率低
2、LinkedList 链表,底层数据结构是链表,查询效率低,增删效率高
注意:有序——有索引,添加的顺序就是存储的顺序
无需——无索引,添加的顺序不一定是存储的顺序(有自己的规则,比如哈希)
拓展学习:小白入门——哈希算法 - 简书 (jianshu.com)
(二)集合与数组/对象的区别
(1)数组:长度固定,所有的数据类型都有对应的数组,同一个数组只能存同一种类型
(2)对象:属性个数是固定的,任意定义类的类型,同一个对象可以存不同的类型
(3)集合:长度可变,所有的引用数据类型都有对应的集合,同一个集合可以存不同的类型
1、每个基本数据类型都有对应的封装类,数据类型间相互转换可以调用对应类的方法。
int → Integer 类
double → Double 类
2、通常同一个规定都会规定存同一种类型,这种规定叫做定义“泛型”
规定形式: <数据类型>
3、理论上可以完全替代所有的一维数组
(三)容器(集合)的 增删改查
(1)增
1、往末尾添加 集合名.add(元素)
2、往指定位置添加 集合名.add(下标,元素)
(2)删
1、根据输入下标删除 集合名.remove(下标)
2、根据对象删除 集合名.remove(对象名)
3、清空 集合名.eclear()
(3)改
1、根据下标改 集合名.set(下标,新元素)
(4)查
1、查一个,根据下标获取元素 集合名.get(下标)
2、查询每一个,集合的遍历
方式1:普通的for循环遍历——线程相对安全
方式2:增强for循环遍历(foreach)(迭代)——线程不安全
for( 数据类型 变量名a:集合/数组/容器 ){
循环体中直接使用a即可
}
方式三:迭代器遍历 iterator
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
iterator.next();//容器中的元素
}
部分参考: 集合的三种遍历方式for循环_集合for循环-CSDN博客
二、异常类(大家族)
(一)Throwable 族长(最初的类)
(1)错误 Error ——无法处理(语法错误,内存溢出)
(2)异常 Exception ——可以处理
异常处理:使用规定语法,在不影响原来逻辑的情况下,保证程序继续运行不奔溃。
1、 编译时期异常
比如:线程相关异常、IO流相关异常、数据库SQL相关异常
2、运行时期异常
RuntimeException 及其子类
(二)异常处理机制
(1)虚拟机默认的处理方式
1、显示异常的类型
2、异常出现的位置
3、终止当前程序(终止当前线程)
(2) 自定义处理
方式一:try catch 代码块
try{
将可能出现的代码放这里
}catch(异常类型 参数名){
如果try中的代码出现异常,并且异常类型与参数类型匹配
就会执行这里的代码(处理代码),程序可以继续运行,不会种植
}
如:
try {
id = Integer.parseInt(idString);
} catch (Exception e2) {
JOptionPane.showMessageDialog(addBookUI, "非法编号!!请输入正确的编号!!!");
return;
}
try {
prise = Double.parseDouble(priseString);
} catch (Exception e2) {
JOptionPane.showMessageDialog(addBookUI, "非法价格!!请输入正确的价格!!!");
return;
}
以上两例是字符串类型强转为整数或双精度浮点数类型的例子 。
可参考:
java中string类型转换为Integer类型-CSDN博客https://blog.csdn.net/weixin_35749545/article/details/128871758java中char和String之间的转换_千锋教育 (mobiletrain.org)http://www.mobiletrain.org/about/BBS/115305.htmlJava String转double_普通网友的博客-CSDN博客https://blog.csdn.net/m0_67400972/article/details/126387713java中double转换成string_mob64ca12ecf3b4的技术博客_51CTO博客https://blog.51cto.com/u_16213417/6992690
方式二:
1、从方法中抛出异常 throws
2 、调用本方法的位置加上方式一的 try catch
方式三:try catch finally 代码块
finally 代码块用于释放某些资源,比如:数据库的连接要释放,IO流的流用完要释放
三、Java的弹窗方式
(一)JoptionPane.showMessageDialog(父级容器,信息) 信息框
(二)JoptionPane.showConfirmDialog(父级容器,信息) 确认取消信息框
(三)JoptionPane.showINputDialog(父级容器,信息) 带输入的信息框