TreeSet:无序,不可重;
底层结构式是红黑树进行存储;
特点:默认从小到大排序;
可以定义比较规则,排序规则,并且可以使用去重原则:
内部比较器|自然排序: 实现Comparable接口,重写comparaTo方法,在方法中定义比较规则.,默认的比较规则;
外部比较器|指定比较器:实现一个Comparator接口,重写compare()方法,方法的内部定义比较规则
Map:存储的每一个数据都是一个键值对形式存在的 k,v——key 无序的,唯一的 -->就是一个set集合;value 无序的,可重复的
特点:
1.如果存储数据的时候,key相同,value的值会覆盖
2.如果一个key,想要对象多个value值,可以把多个value存在一个容器中,而容器对象但是一个
3.HashMap如果key是自定义的引用数据类型,去重问题:需要给key数据的类型重写hashcode和equals方法,能达到去重特点——key的值相同value的值不覆盖,需要在put之前进行判断。
TreeaMap:
特点::其中数据会自动升序排序
根据学生的身高进行排序:
实现的步骤:
1.去重 实现内部|外部比较器 比较的原则根据key,不能根据value
2.根据需求排序
Properties Properties 可保存在流中或从流中加载。 key与value都是字符串类型的数据
配置文件使用:
1.项目右键->source floder->file->添加键值对类型的数据
2.通过Properties 的load方法,从资源文件中获取资源流,读入数据
Collections:
Collections操作容器的工具类:
void sort(List) //对 List 容器内的元素排序,按照升序进行排序。
void shuffle(List) //对 List 容器内的元素进行随机排列
void reverse(List) //对 List 容器内的元素进行逆续排列
void fill(List, Object) //用一个特定的对象重写整个 List 容器
int binarySearch(List, Object)//采用折半查找的方法查找特定对象
多线程:
线程和进程之间的区别:略
多线程的开启方式:
- 继承Thread类,重写run()方法,在方法中定义多线程的线程体
- 实现Runnable接口,重写run()方法,在方法中定义多线程的线程体 ---推荐
- 实现Callable接口,重写call()方法,在方法中定义多线程的线程体
1.继承Thread类,重写run()方法,在方法中定义多线程的线程体
2.实现Runnable接口,重写run()方法,在方法中定义多线程的线程体 ---推荐
特点:接口可以多实现,类只能单继承;实现资源共享