day09
常用工具类
java.lang.Math数值运算
基本数值运算,如初等函数、对数、平方根和三角函数
//最大最小值
Math.max(12, 21);
Math.min(2, 3);
//绝对值
double d = Math.abs(-3.1415);
//圆周率
System.out.println(Math.PI);
//返回a的b次方pow(a,b)
double d1 = Math.pow(2, 10);
System.out.println(d1);
java.util.Date日期
Date date = new Date();
System.out.println(date);
//日期格式化
SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String string = sFormat.format(date);
System.out.println(string);
java.util.LocalTime;
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
System.out.println(ldt.getYear());//获取年份
System.out.println(ldt.getMonth());//月名字
System.out.println(ldt.getMonthValue());//几月
//自定义一个日期
LocalDate lDate = LocalDate.of(2014, Month.MAY, 12);
java.util.Arrays
//比较数组中的元素,按顺序比较
boolean tar = Arrays.equals(a, b);
//如果a{1,2,3}b{1,2,3}返回true,如果a{3,2,1}b{1,2,3}返回false
//打印数组
System.out.println(Arrays.toString(arr));
数组扩容
int[] a = {1,2,3,4};
//数组扩容copyOf(原数组, 新数组的长度)
int[] b = Arrays.copyOf(a, 6);
System.out.println(Arrays.toString(b));
//b = {1,2,3,4,0,0}
包装类
byte——Byte
short ——Short
int ——Integer
long——Long
float——Float
double——Double
char——Character
boolean——Boolean
装箱、拆箱
方法:
valueOf()将其他类型转换成整数类型
原理:Integer中缓存着[-128,127]数组,如果传入的参数在这个范围之内,valueOf()会直接返回缓存中的数,否则,如果传入的参数超过这个范围,先创建一个Integer对象再返回值
String str = "123";
Integer b3 = Integer.valueOf(str);
syso(b3+2)
compare(a,b)比较两数大小
int res = Integer.compare(a,b);
//a=b 0
//a>b 1
//a<b -1/
数字转字符串toString(num)
String s = Integer.toString(2);
System.out.println(string);
集合
ctrl shift o 清除不用jar包
java.util.Collection
Collection只能存储引用类型
List< E >
List集合的特点:
集合中的元素是有序的,允许重复的
ArrayList
ArrayList是实现了基于动态数组的数据结构,再未声明长度的情况下,默认长度是10,数据填满后会自动扩充原长度的50%
list中的元素是有序并且可以重复的
//创建一个list集合
List<String> list = new ArrayList<>();
//添加元素
list.add("111");
//添加元素到指定位置
list.add(1,"222");
list.add("111");
list.add("444");
//获取元素的值
String v = list.get(1);
//集合长度,集合中存储元素的个数
list.size();
//遍历
//直接打印
System.out.println(list);
//普通for循环遍历
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//foreach遍历
for (String string : list) {
System.out.println(string);
}
LinkedList基于链表的
对于从头部和中间插入,链表插入快于数组
对于尾部插入,数组插入快于链表
ArrayList和LinkedList的区别
1.ArrayList是实现了基于动态数组的数据结构,在未声明长度的情况下,默认长度是10
数据填满之后会自动扩充原来的50%:10满了之后扩充到15
2.LinkedList是基于双向链表的数据结构
3.ArrayList在尾端插入和访问数据时的效率高于LinkedList,因为LinkedList添加删除数据需要移动指针
4.LinkedList对于中间插入或者头部插入时效率高于ArrayList,因为LinkedList添加删除数据不需要移动数据
Set
集合特点:集合中的元素是无序的,不可重复的
方法
添加元素
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
长度
set.size();
移除指定元素
set.remove(2);
获取元素foreach
for(Integer int1 : set){
System.out.println(int1);
}
清空集合
set.clear();
Set集合与List集合的区别
Set集合元素是无序而且不可重复的,List集合是有序并且可以重复的