JavaSE09

自定义异常

只需要继承异常类

如果需要添加自定义的异常信息,需要调用异常父类的构造方法

Exception类的构造方法:

Exception() --默认构造方法

Exception(String message) --构造方法,形参是异常信息

Exception(String message,Throwable t) --添加其他异常,错误,Throwable的对象

 

 

集合框架

两种类型的容器:一种是集合,一种是图

 

数组:存储很多元素

不足:长度是固定的,存储的个数也是固定的

操作的方法,依赖其他类:Arrays,System中的方法操作数组

 

集合:长度是可变的,存储的元素也是动态个数

存储各种类型的数据

集合本身有很多操作自己的方法

集合的种类有很多,数据存储方式很多

 

集合:存储元素的容器

Collection接口,集合的父级接口,定义了集合的特点.

集合有三种子类接口:List,Set

List类型的集合的实现子类:

ArrayList,LinkedList,Vector.

Set类型的集合的实现子类:

HashSet,TreeSet

 

Collection 接口

Java.util.Collection 接口  集合父类接口

List 类型集合接口的特点:有序(有下标),存储的元素是可以重复

三种实现子类:ArrayList,LinkedList,Vector.

ArrayList:数据存储方式 :  数组;多线程不安全

LinkedList:数据存储方式:链表

Vector:数据存储方式:数组;多线程安全

 

 

迭代器:java.util.Iterator

迭代器对集合进行遍历,循环.不用暴露集合内部结构,又可以让外部代码访问集合内部的数据(解除耦合度,互相联系更少)

 

怎么理解使用迭代器可以降低耦合度?

  1. 直接把操作代码与集合进行关联.如果集合发生变化,操作代码也会受到影响,这样的耦合度非常高
  2. 有迭代器后,业务代码与集合分离.业务代码与集合统一生产的迭代器关联,集合可以生成统一的迭代器,耦合度降低了很多,业务代码和集合相互不影响,方便开发和维护

 

比枚举更好的,不同点:

  1. 方法名改进了,枚举的方法名比较长
  2. 迭代器在迭代的过程可以从集合中移除元素

 

Collection 接口

是集合的父类接口

特点:存储一组重复,无序的对象

List接口是Collection接口中一种有序的集合
特点:通过下标控制List中的元素,允许重复的元素

Set接口是Collection 接口中一种无序集合

特点:存储一组唯一,无序的对象

HashSet是Set接口的实现子类

存储方式:hash表存储元素:对象的hashCode()方法

特点:存储唯一,无序的一组对象

TreeSet是Set接口的实现子类

存储方式:树形结构

特点:存储唯一,无序的一组对象

但可实现排序功能

 

泛型

按照泛型的规则存储泛型类型的元素

 

 

实现TreeSet排序

自然排序接口Comparable:从小到大排序

集合实现自然排序接口后,集合中的元素会按照排序方式

  1. 集合的规定泛型是已经实现了自然排序接口,自动按照自然排序去排.比如: Integer,String,Byte;不用自定义实现自然排序接口
  2. 自定义的类没有实现自然排序.需要实现自然排序接口Comparable

 

自然排序Comparable接口

目的:实现ComparabTo()方法,按照自定义逻辑进行排序

对象1.CompareTo(对象2):比较对象1与对象2的顺序. 返回值是:-1  0  1

负整数,零或正整数,根据此对象是小于、等于还是大于指定对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值