Java集合和Date 的使用 还有io 流 多线程!!!多线程下载文件

Date类的使用!!

在这里插入图片描述
集合
大概的概述
List ,set,Map 都是接口,前两个都是继承Collection 接口,Map 是独立的
set下有HashSet,LinkedHashSet,TreeSet
List下有ArrayList,Vector,LinkedList
Map下有Hashtable,LinkedHashMap,HashMap,TreeMap
Collection 接口下还有个Queue接口,有PriorityQuece类

Collection 接口
List 有序,可以重复

1 AyyayList
优点:底层数据结构,查询快,增加删除慢
缺点:线程不安全,效率高
案例 斗地主的!!
在这里插入图片描述

2.vector
优点 :底层数据结构是数组,查询快,增加删除慢
缺点:线程安全,效率低

3 LinkedList
优点 :底层数据是链表,查询慢,增加和删除比较快
缺点:线程不安全,效率高
arraylink 和 LinkedList
在这里插入图片描述

set 无序 ,唯一 会自动去重

HashSet
底层数据结构是哈希表 (无序,唯一)
如何保证元素的唯一性?

依赖两个方法 :hashCode()和equals()

LinkHashSet

底层数据结构是链表和哈希表

1由链条保证元素有序
2由哈希表来保证唯一

TreeSet
底层数据结构是红黑树(唯一,有序)
如何保证元素排序?
自然排序
比较器排序
2如何保证元素的唯一性?
根据比较的返回值是否是0来决定

TreeSet的主要功能用于排序
LinkedHashSet的主要功能用于保证FIFO即有序的集合(先进先出)
HashSet只是通用的存储数据的集合

案例

在这里插入图片描述
在这里插入图片描述

Map接口 map 通过key 和value 保存 如果key 相同 会自动去重
有三个实现类HashMap,TreeMap,和HashTable

TreeMap是有序的,其他是无序的
Hashtable的方法是同步的,HashMap的方法不是同步的,这两者最主要的区别

所以Hashtable是线程安全的,HashMap不是线程安全的。
HashMap效率较高,Hashtable效率较低。*
io流*
流:代表任何有能力产生数据的数据源对象或者是有能力接受数据的接受端对象
流的本质:数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

作用:为数据源和目的的地建立一个输送通道

IO流的分类
有输入流,输出流

字节流 InputSteram outputStream

在这里插入图片描述
字符流 Reader Writer

在这里插入图片描述
多线程的笔记
什么是进程 :是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程,进程也是程序的一次执行过程,是系统运行程序的基本单位,系统运行一个程序是一个进程从创建,运行到消亡的过程

线程:进程内部的一个独立执行的单元,一个进程可以同时并发的运行多个线程,可以理解为一个进程便相当于一个单的cpu 操作系统,而线程便是这个系统中运行的多个任务
如何创建线程
方式一
在这里插入图片描述
方式二
在这里插入图片描述
车票的案例

在这里插入图片描述
多线程下载图片方式一 ,(ps 这个简单)

在这里插入图片描述
方式二
思路每个线程都有开始跟结束所以给有参构造
设置要下载的地址
写入和输出的流,避免3个线程出现同步,设置同步锁
在这里插入图片描述
测试类
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46937429/article/details/108980247