【幻化万千戏红尘】qianfengDay15-java基础学习:List,ArrayList,LinkedList,comparable,comparator

时间:2021-10-03 01:10:31

 

 

 

课程回顾:

 

集合:动态存储多个对象

长度可变,存储同一种类型的对象

1、Collection<E>:

1、List<E>:重复且有序

常用方法:

add

get

set

indexOf

contains

remove

size

clear

iterator

1、ArrayList<E>:数组

2、LinkedList<E>:双链式

offer

peek

poll

pop

push

2、Set<E>:不重复且无序

2、Map<K,V>

 

 

 

今日内容:

Set<E>:无序且不重复

1、HashSet<E>: 底层实现:哈希散列存储,其实就是根据哈希值按照固定的算法计算位置

新增元素时,首先会调用对象的hashCode方法获取哈希值

与集合中其他元素的哈希值进行比较,如果哈希值相同会调用equals方法,

若返回true,说明相同,则添加失败

若返回false则添加成功,如果哈希值不同则直接添加

一般而言:我们使用HashSet存储自定义类时,需要对类重写hashCode和equals方法

public int hashCode() {}

public boolean equals(Object obj) {}

常用方法:

add:添加元素

size:获取元素个数

contains:是否包含

remove:移除

iterator:迭代器对象

2、LinkedHashSet:HashSet的子类,底层实现:双链式+哈希散列存储

特点:不可重复且有序

只是保证了添加顺序

3、TreeSet<E>:底层实现:红黑二叉树

要求元素必须可排序的

注意:TressSet存储自定义类时,要求对应的类要么实现自然顺序,要么自定义比较器

就是说:元素必须可排序,否则报异常

常用方法:

add:添加元素

size:获取元素个数

ceiling:获取大于等于指定值的最小元素

floor:获取小于等于指定值的最大元素

higher:获取大于指定值的最小元素

lower:获取小于指定值的最大元素

first:获取第一个元素

last:获取最后一个元素

pollFirst:获取并移除第一个元素

pollLast:获取并移除最后一个元素

java中的比较器接口:

1、Comparable:自然顺序---对应的是TreeSet无参构造

compareTo:实现排序的方法,返回数据:0表示元素相同,正数表示大于,负数表示小于

2、Comparator:自定义比较器----对应的TreeSet(Comparator)

compare:实现排序的方法

Collections:集合工具类

 

常用方法:

sort:排序,要求元素可排序(自然顺序或自定义比较器)

shuffle:随机进行交换

 

 

数组和集合的相互转换

Arrays.asList:数组--->集合

toArray:集合----->数组

 

匿名内部类格式:new 类名或接口名(){

重写的方法

};

 

下周内容:

Map:HashMap,TreeMap

File

I/O流

字节和字符

文件流

缓冲流

转换流

对象流

内存流

数据流

打印流

随机读取文件类

线程