Java
一、Arrays类
Arrays
该类包含用于操作数组的各种方法(如排序和搜索)。
该类还包含一个静态工厂,可以将数组视为列表。
如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException。
sort():排序的
toString():将数组以字符串的形式输出
binarySearch():在制定数组中,查找制定的元素出现的位置,如果没有找到,就返回为-1
要求数组中的元素必须是有序的
fill(int[] a,int val):将指定的类型值分给指定的int类型数组中的每一个元素
二分查找的方法
public static void main(String[] args) {
List<String> list = Arrays.asList("张三","张四","张五","张六");
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
String[] name = {"欧阳","轩辕","上官","慕容"};
//s m o x
Arrays.sort(name);
//在进行二分查找之前先进行排序
System.out.println(Arrays.toString(name));
int index = Arrays.binarySearch(name,"慕容狗蛋");
System.out.println(index);
int[] arr = {10,2,5,4,33,25,11,16,88,90};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
int index2 = Arrays.binarySearch(arr,11);
System.out.println(index2);
二、Date相关类
Date类的解析:
Date类表示特定的瞬间时间,精确到毫秒
之前学习过一个System的方法:public static long currentTimeMillis()
可以获取当前系统时间的毫秒数
构造方法:
Date()
Date(long l)
long类型和date类型之间的相互转换
long ---> Date 使用的是Date(long t)的构造函数
Date ---> long 使用getTime()方法将日期对象转换成时间的毫秒值
boolean after(Date when):测试此日期是否在指定日期之后
boolean before(Date when):测试此日期是否在指定日期之前
int compareTo(Date anotherDate) 比较两个日期
返回为0表示两个日期相同,如果返回小于0表示调用的日期在参数日期之前
返回值大于0 表示调用方法日期在参数日期之后
DateFormat:时间格式化
是日期/时间格式化的抽象类
是日期/时间格式化子类的抽象类,它以语言无关的方式格式化和分析日期或时间。
日期/时间格式化子类(如SimpleDateFormat )允许格式化(即日期文本),
解析(文本日期)和归一化。 该日期表示为一个Date对象,
或自1970年1月1日00:00:00 GMT以来的毫秒。
SimpleDateFormat:是DateFormat的直接子类
作用:
Date ---格式化format ---> String
String ---解析parse ----> Date
DateFormat是一个抽象类,不能创建对象
学习它的子类SimpleDateFormat
1、如何创建子类对象
子类的构造函数
SimpleDateFormat()
SimpleDateFormat(String pattern)
SimpleDateFormat(String pattern , Locale locale)
2、调用什么方法进行格式化
String format(Date date) 将日期格式化成日期/时间字符串
y 年
M 年中的月份
w 年中的周数
W 月份中的周数
D 年中的天数
d 月中的天数
F 月份中的星期
E 星期中的天数
a Am/pm标志
H 一天中的小时(0 ~ 23)
k 一天中的小时数(1 ~ 24)
K am/pm中的小时数(0 - 11)
h am/pm中的小时数(1 - 12)
m 小时中的分钟数
s 分钟中的秒数
S 毫秒数
z 时区
public static void main(String[] args) {
Date date = new Date();
//直接获取到当前的日期和时间
System.out.println(date);//Wed Mar 23 14:10:03 CST 2022
//获取到当前系统时间的毫秒数
System.out.println(System.currentTimeMillis());//1648015844148
//将毫秒数给到date的构造函数中,能够将毫秒数转换成日期
Date date1 = new Date(1648015844148L);
System.out.println(date1);//Wed Mar 23 14:10:44 CST 2022
File file = new File("D:\\j2201\\新建文本文档.txt");
//文件最后修改时间的方法
long f = file.lastModified();
System.out.println("f = " + f);
Date date2 = new Date(f);
System.out.println(date2);
}
三、Calendar日历类
Calendar:日历
在Date类之后出现的,替换调用了Date类中的很多方法,所以Date类中的方法过时了
查看API可以发现Calendar是一个抽象类
方式1:
通过静态方法创建
static Calendar getInstance();
方式2:
子类进行创建GregorianCalendar
//Calendar.YEAR 年
//Calendar.MONTH 月 从0 - 11
//Calendar.DATE 日
//Calendar.HOUR 小时
//Calendar.MINUTE 分钟
//Calendar.SECOND 秒
//Calendar.DAY_OF_WEEK 星期几
//Calendar.DAY_OF-MONTH 几号
//Calendar.DAY_OF_YEAR 一年的第几天
题目:计算你活着的天数:
//创建一个当前的日期
Calendar now = Calendar.getInstance();
//创建一个你出生时候的日期
Calendar birthday = Calendar.getInstance();
birthday.set(1993,10,12);
//两个日期的毫秒数相减,就是你活得毫秒数
//当前的时间转换的毫秒数
long t1 = now.getTimeInMillis();
//出生的时间转换成毫秒数
long t2 = birthday.getTimeInMillis();
long day = (t1 - t2) / 1000 / 60 / 60 / 24;
//去API中找有没有一个方法能够将Calendar转换成long
//再把毫秒数转换成你活得天数
System.out.println("你已在世界上生活了" + day + "天");