java数组去掉第一个元素_【图片】JAVA基础(九)【广信it学院吧】

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Eclipse、java

作者:张俊辉

撰写时间:2020年11月8日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

45.异常
概述:程序出现不正常情况。6a9c5faac785090e2ae7690a728b1824.png

Error:严重问题,不需要处理。
Exception:称为异常类,表示程序本身可以处理的问题。
RuntimeException:在编译期间是不检查的,出现问题后,需要我们回来修改代码。
非RuntimeException:编译期间就必须处理,否则程序不能通过编译,就更不能正常运行了。
的默认处理方案
如果程序出了问题,我们没有处理,最终JVM会做默认处理。
- 把异常的名称,异常原因及异常出现的位置等信息输出在了控制台。
- 程序停止运行
2.异常处理
如果程序出现问题,我们需要自己处理,有两种方案:
- try ... catch ...
- throws
1.异常处理之try ... catch ...
格式:
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常处理代码;
}
执行流程:
- 程序从try里边的代码运行
- 出现异常,会自动生成一个异常类对象,该异常对象将被提交个Java运行时系统
- 当Java运行时系统接收到异常对象时,回到catch中去找匹配的异常类,找到后进行异常处理
- 执行完毕后,程序还可以继续往下执行
的成员方法
方法名说明
public String getMessage()返回此throwable的详细消息字符串
public String toString()返回此可抛出的简短描述
public void printStackTrace()把异常的错误信息输出在控制台
3.异常处理之throws
虽然我们通过try...catch...可以对异常进行处理,但并不是所有的情况我们都有权限进行异常的处理,也就是说,有些时候可能出现的异常是我们处理不了的,针对这种情况,Java提供了throws的处理方案
格式:throws 异常类名 。
注意:这个格式是跟在方法的括号后面的
编译时异常必须要进行处理,两种方案:try...catch...或者throws,如果采用throws方案,将来谁调用谁处理。
运行时异常可以不处理,出现问题后,需要回来修改代码。
3.编译时异常和运行时异常的区别
Java中的异常被分为两大类,编译时异常和运行时异常,也被称为受检异常和非受检异常,所有的RuntimeException类及其子类被称为运行时异常,其他异常都是编译时异常
- 编译时异常:必须显示处理,否则程序将发生错误,无法通过编译
- 运行时异常:无需显示处理,也可以和编译时异常一样处理
4.自定义异常
格式:
public class 异常类名 extends Exception{
无参构造
带参构造
}
例子:
public class ScoreException extends Exception{
public ScoreException(){}
public ScoreException(String message){
super(message);
}
}
throws和throw的区别
THROWSTHROW
用在方法声明后面,跟的是异常类名用在方法体内,跟的是异常对象名
表示抛出异常 ,由该方法的调用者来处理表示抛出异常,由方法体内的语句处理
表示出现异常的一种可能性,并不一定会发生这些异常执行throw一定抛出了某种异常
46.集合进阶
集合类的特点:提供一种存储空间可变的存储类型,存储数据量可以随时发生改变。
体系结构:d13d1d569e5b4a38894736eea74c45b7.png


概述:
- 是单列集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
- JDK不提供此接口的任何直接实现,它提供了更具体的子接口(如Set和List)实现
创建Collection集合的对象
- 多态的方式
- 具体的实现类ArrayList
集合常用方法
方法名说明
boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定元素
void clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定元素
boolean isEmpth()判断集合是否为空
int size()集合的长度,也就是集合中元素的个数
集合的遍历
Iterator:迭代器,集合的专用遍历方式
- Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
- 迭代器是通过集合的`iterator()`方法得到的,所以说它是依赖与集合存在的
Iterator中的常用方法
- E next():返回迭代中的下一元素
- boolean hasNext():如果迭代具有更多的元素 ,则返回true遍历例子:
public static void mian(String[] args){
Collection<String> c=new ArrayList<String>();
("hello");
("world");
("java");
Iterator<String> it=();
while(()){
String s=();
(s);
}
}
概述:
- 有序集合(也称为序列),用户可以精确控制列表每个元素的 插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。
- 与Set集合不同,列表通常允许重复的元素。
集合特点
- 有序:存储和取出的元素顺序一致
- 可重复:存储的元素可以重复
集合的特有方法
方法名说明
void add(int index,E element)在此集合中的指定位置插入指定的元素
E remove(int index)删除指定索引处的元素,返回被删除的元素
E set(int index,E element)修改指定索引的元素,返回被修改的元素
E get(int index)返回指定索引的元素
列表迭代器
- 通过List集合的listIterator()方法得到,所以说它是List集合特有的迭代器
- 用于允许程序员沿任意一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
中的常用方法
- E next():返回迭代中的下一元素
- boolean hasNext():如果迭代具有更多的元素,则返回true
- E previous():返回列表中的上一元素
- boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时有更多的元素,则返回true
- void add(E e):将指定的元素插入列表
5.增强for循环
简化数组和Collection集合的遍历
- 实现Iterable接口接口的类允许其对象成为增强for语句的目标
- 它是JDK5之后出现的,其内部原理是一个Iterator迭代器
格式:
for(元素数据类型 变量名 :数组或者Collection集合){
//在此处使用变量即可,该变量就是元素
}
例子:
int[]={1,2,3,4,5,6};
for(int i :arr){
(i);
}
6.数据结构
数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合,通常情况下,精心选择的数据结构可以带来更高的运行或存储效率
1.常见的数据结构之栈
一端开口称为栈顶,一端封闭称为栈底,数据进入栈模型的过程称为:压/进栈,数据离开栈模型的过程称为:弹/出栈,栈是一种先进后出的模型,例如:杯子
2.常见的数据结构之队列
一端开口为后端,一端开头为前端,数据从后端进入队列模型的过程称为:入队列,数据从端离开队列模型的过程称为:出队列,例如:管道
队列是一种数据先进先出的模型
3.常见数据结构之数组
数组是一种查询快,增删慢的数据结构
- 查询数据通过索引定位,查询任意数据耗时相同,查询速度快;
- 删除数据时,要将原始数据删除,同时后面每个数据前移,删除效率低;
- 添加数据时,添加数据后的每个数据后移,再添加元素,添加效率低;
4.常见数据结构之链表06fd3aa00c60ce8c03c0557aa00b3bdb.png

bc0cafcf75386749b85259ebccdb21d8.png

- 链表是一种增删快的模型(对比数组)
- 链表是一种查询慢的模型(对比数组)
5.常见数据类型之哈希表
- JDK8之前,底层采用数组+链表实现,可以说是一个元素为链表的数组
- JDK8以后,在长度比较长的时候,底层实现了优化
集合子类的特点
List集合常用子类:ArrayList、LinkedList
- ArrayList:底层数据结构是数组,查询快增删慢
- LinkedList:底层数据结构是链表,查询慢增删快
集合的特有功能
方法名说明
public void addFirst(E e)在该列表开头插入指定的元素
public void addLast(E e)将指定元素追加到此列表的末尾
public E getFirst()返回此列表中的第一个元素
public E getLast()返回此列表中的最后一个元素
public E removeFirst()从此列表中删除并返回第一个元素
public E removeLast()从此列表中删除并返回最后一个元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值