# 集合大家族
- 族长 Coollection
- Set 集 元素无序的,不可重复的
- List 列表 元素有序的,可重复的
- ArrayList 数组列表,底层数据结构是数组,查询效率高,增删效率低
- LinkedList 链表列表,底层数据结构是链表,查询效率低,增删效率高
tip:有序,有索引、添加的顺序就是存储的顺序
无序,没有索引,添加的顺序不一定是存储顺序(有自己的规则,比如哈希)
# 集合与数组/对象的区别
- 数组:长度固定,所有的数据类型都有对应的数组,同一数组只能存同一种类型
- 对象:属性的个数是固定的,任意定义类的类型,同一对象可以存不同的类型
- 集合:长度可变,所有的引用数据类型都有对应的集合,同一个集合可以存不同的类型
1.每个基本数据类型都有对应的封装类 int ---> Integer
2.通常同一个集合都会规定存同一种类型,这种规定叫做定义"泛型" <数据类型>
# 容器 增删改查
- 增
往末尾添加 add(元素)
往指定位置添加 add(下标,元素)
- 删
根据下标删除 remove(下标)
根据对象删除 remove(对象名)
清空 clear()
- 改
根据下标改 set(下标,新元素)
- 查
查一个,根据下标获取元素 get(下标)
查询每一个,集合的遍历
- 普通for循环遍历
- 增强for循环遍历
for(数据类型 变量名a : 集合/容器){
循环体中直接使用a即可
}
集合长度: 集合名.size()
# 异常大家族
- 族长 Throwable
- 错误 Error 无法处理
- 异常 Exception 可以处理
异常处理:使用规定的语法,在不影响原来逻辑的情况下,保证程序运行不崩溃
- 编译时期异常
比如:线程相关的异常,IO流相关的异常、数据库SQL相关异常
- 运行时期异常
RuntimeException及其子类
- 异常处理机制
- 虚拟机默认的处理方式
1.显示异常的类型
2.异常出现的位置
3.终止当前程序(终止当前线程)
- 自定义处理
方式一:try catch代码块
tyr{
将可能出现异常的代码放在这里
}catch(异常类型 参数名){
如果try中的代码出现异常,并且异常类型与参数类型匹配
就会执行这里的代码(处理代码),程序可以继续运行,不会终止。
}
方式二:
1.从方法中抛出异常 throws Exception
2.tyr catch
方式三:try catch finally 代码块
finally代码块用于释放某些资源,比如:数据库链接要释放,IO流的流用完要释放。
# 弹窗方式
- JOptionPane.showMessageDialog(父级容器,信息);
- JOptionPane.showConfirmDialog(父级容器,信息);
- JOptionPane.showInputDialog(父级容器,信息);
支线任务:
1.集合的第三种遍历方式
迭代器遍历集合
List集合中的iterator()方法进行遍历
public class iterator_ {
public static void main(String[] args) {
//创建集合对象并添加
ArrayList<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
list.add("Java");
list.add("Javaee");
//遍历集合
Iterator<String> it = list.iterator();
while(it.hasNext()) {
String s = it.next();
System.out.println(s);
}
}
}
2.字符串如何转成整数或者浮点数?
Integer.parseInt() – 返回原始整数。
Integer.valueOf() – 返回一个 Integer 对象
3.整数/浮点数 如何转成字符串?
Float.toString(float);