MAP
存储键值对形式的数据 key-value(K-V)
key是无序的,不可重复的set集合
value无序的,可重复的 Collection集合
一个key只能对应一个value(如果想要value对应多个值可以存储在容器中list)
存储多个数据的时候,如果key相同,value会覆盖
遍历:
keySet() 返回所有的key
values() 返回所有的值
entrySet() Set<Map.Entry<K,V>>
HashMap
底层是由哈希表实现的
hashmap去重-->根据key去重,自定义引用数据类型数据:hashCode()和equals()
TreeMap
底层是由红黑树实现的
TreeMap去重-->根据key去重,自定义引用数据类型数据:内部|外部比较器
选择:如果想要根据key做某种规则的排序选择TreeMap,否则选择HashMap
Collections
void sort(List) 对 List 容器内的元素排序,按照升序进行排序。
void shuffle(List) 对 List 容器内的元素进行随机排列
void reverse(List) 对 List 容器内的元素进行逆续排列
void fill(List, Object) 用一个特定的对象重写整个 List 容器
int binarySearch(List, Object)采用折半查找的方法查找特定对象
线程
Collections.synchronizedMap(Map) 返回一个线程安全的map容器
juc包下java.util.concurrent 类 ConcurrentHashMap<K,V> 线程安全的容器HashMap容器类
多线程
多个任务同时执行就是多线程,如果不需要多任务,就不需要开启多线程
优点:资源利用率更好;程序设计在某些情况下更简单;程序响应更快
进程:对与操作系统而言就是不同的任务执行,每一个进行都有自己的代码和数据空间,进程之间切换消耗比较大,一个进程中包含一刀多个线程,是资源分配的最小单位
线程:一系列线程共享代码和数据空间,线程之间切换消耗较小,线程是cpu调度的最小单位
多线程的创建方式
继承Thread类 重写run()方法
实现Runnable接口,重写run()方法 --推荐
实现Callable接口,重写call()方法
线程
最新推荐文章于 2024-06-10 07:54:28 发布