工具类总结
类 Collections
集合工具类
常用方法:
Sort ------------->排序(正序)
Shuffle ------------>乱序(随机洗牌)
reverse ----------->反转(倒序)
frequency--------->统计所有
fill------------------>替换
swap-------------->交换(指定位置)
static
| addAll(Collection<? super T> c, T... elements) | |
static
| binarySearch(List<? extends Comparable<? super T>> list, T key) | |
static
| binarySearch(List<? extends T> list, T key, Comparator<? super T> c) | |
static
| copy(List<? super T> dest, List<? extends T> src) | |
static
| emptyList() | |
static
| emptyMap() | |
static
| emptySet() | |
static
| ||
static int | frequency(Collection<?> c, Object o) | |
static int | indexOfSubList(List<?> source, List<?> target) | |
static int | lastIndexOfSubList(List<?> source, List<?> target) | |
static
| list(Enumeration<T> e) | |
static
| max(Collection<? extends T> coll) | |
static
| max(Collection<? extends T> coll, Comparator<? super T> comp) | |
static
| min(Collection<? extends T> coll) | |
static
| min(Collection<? extends T> coll, Comparator<? super T> comp) | |
static void | ||
static
| reverseOrder() | |
static
| reverseOrder(Comparator<T> cmp) | |
static void | ||
static void | ||
static
| ||
static
| sort(List<T> list, Comparator<? super T> c) | |
static void |
Arrays数组工具类
常用方法:
封装:
asList---------->
static <T> List<T> asList(T... a) 把一个T类型的数组或可变参数传到list集合
中
好处:可以使用list中提供的封装好的方法,但是不可以做任何改长度的操
作:增删操作(×)可以进行元素的替换(只要不改变长度的操作都可以)
查找:
binarySearch-------------->
tatic <T> int binarySearch(T[] a, T key, Comparator<? super T> c) 二分查找
查找
一个元素在数组中的索引
分配:
fill-------------->
static void fill(数据类型[] a, 数据类型 val) 将a里的所有元素换成val
拷贝:
copyOf------------>
static <T> T[] copyOf(T[] original, int newLength) 注意:如果不够,用
null填充(如果是基本数据类型的数组,用0填充)
copyOfRange----------->
static <T> T[] copyOfRange(T[] original, int from, int to)
注意:如果不够,用null填充(如果是基本数据类型的数组,用0填充)
不包含 to 的索引的元素
static
| asList(T... a) | |
static
| binarySearch(T[] a, int fromIndex, int toIndex, T key, Comparator<? super T> c) | |
static
| binarySearch(T[] a, T key, Comparator<? super T> c) | |
static
| copyOf(T[] original, int newLength) | |
static
| copyOf(U[] original, int newLength, Class<? extends T[]> newType) | |
static
| copyOfRange(T[] original, int from, int to) | |
static
| copyOfRange(U[] original, int from, int to, Class<? extends T[]> newType) | |
static boolean | equals(Object[] a, Object[] a2) | |
static void | fill(Object[] a, int fromIndex, int toIndex, Object val) | |
static void | fill(Object[] a, Object val) | |
static int | hashCode(short[] a) | |
static void | ||
static void | sort(Object[] a, int fromIndex, int toIndex) | |
static void | sort(short[] a) | |
static void | sort(short[] a, int fromIndex, int toIndex) | |
static
| sort(T[] a, Comparator<? super T> c) | |
static
| sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c) | |
static String |
System类
常用方法:
exit ----------->退出jvm
Gc------------->通知垃圾回收器回收垃圾
getProperties() :
static Properties getProperties()
获取属性的时候,要调用 getProperty get方法获取的值不完整
获取所有属性名集合的时候: propertyNames 不要用keySet,这个获取的不完整
currentTimeMillis():
static long currentTimeMillis() ------->返回以毫秒为单位的当前时间。
方法摘要:
static PrintStream | err |
static InputStream | in |
static PrintStream | out |
常用方法:
static void | arraycopy(Object src, int srcPos, Object dest, int destPos, int length) (不如用Array里的copyOf) |
static String | clearProperty(String key) |
static long | currentTimeMillis() |
static void | exit(int status) (连finally都可以终止,直接退出) |
static void | gc() |
类 Properties
获取属性:getProperty
获取属性的集合名称:propertyNames
getProperty(String key) | |
getProperty(String key, String defaultValue) | |
Enumeration<?> | propertyNames() |
类 Runtime(不重要)
实用:
exec 可以启动一个子进程
getRuntime: Runtime runtime = Runtime . getRuntime;
exec: runtime.exec(“notepad.exe”);//打开记事本
返回一个Process的对象 : 遗留: 调用一个 java.exe HelloWorld的命令,把这个命令的输出打印的eclipse里的控制台里边
void | addShutdownHook(Thread hook) |
int | availableProcessors() |
exec(String[] cmdarray, String[] envp) | |
exec(String[] cmdarray, String[] envp, File dir) | |
exec(String command, String[] envp, File dir) | |
void | exit(int status) |
long | freeMemory() |
void | gc() |
static Runtime | getRuntime() |
void | halt(int status) |
void | |
void | loadLibrary(String libname) |
long | maxMemory() |
boolean | removeShutdownHook(Thread hook) |
void | runFinalization() |
long | totalMemory() |
void | traceInstructions(boolean on) |
void | traceMethodCalls(boolean on) |
类 Process
ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获得相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法
方法:
abstract void | destroy() |
abstract int | exitValue() |
abstract InputStream | getErrorStream() |
abstract InputStream | getInputStream() |
abstract OutputStream | getOutputStream() |
abstract int | waitFor() |
Math工具类
常量
E 自然对数的底
PI 圆周率
-----
常用方法:
sqrt 开平方
ceil 大于等于参数的第一个正数
floor 小于等于参数的第一个正数
round 四舍五入
random 获取一个0 ~ 1的随机数
范例:要求获取 0~6 范围的随机数
Math.random() * 6
---------前边的方法需要熟练使用
cbrt 开立方
pow(a, b) a的b次幂
Random类
nextInt() 去在int范围内的随机数
nextIndex(a) 取0~a范围内的随机数
范例:如果求 3 到 9的随机数
nextIndex(6) + 3
总结: 如果球 a 到 b 的随机数
int min = Math.min(a,b);
int max = Math.max(a,b);
nextIndex(max - min) + min;
伪随机数:如果随机种子确定了,每次运行的结果都会重复。(每一次的第一次调用都一样)
new Random() ---> 用当前时间的纳秒做随机种子
Date日期类
new Date() //创建了一个当前时间的对象
long t = System.currentTimeMillis(); //获得当前时间的一个时间戳 --注意:有的服务器,时间戳是按秒算的 ,比如php,java里是按毫秒算的
new Date(t); //通过一个时间戳创建一个Date对象
---------
把Date对象转成一个时间戳:
getTime()
-----------
Date 方便阅读
long 方便计算。方便传输
DateFormat
格式化:
SimpleDateFormat 构造函数的模板里如果有不需要解析的英文,需要加 ''
模板里边, 如果模板的字母 只写了一个, 补全。
如果超出格式化的长度,补 0
|- new SimpleDateFormat("yyyyy").format(0) 01970
|- new SimpleDateFormat("y").format(0) 1970
|- new SimpleDateFormat("yy").format(0) 70
解析:
parse(String)
Canlendar日历类
获取字段: get
设置字段:set(字段,值) 月是从0开始的
转成Date: getTime()
转成时间戳:getTimeInMillis
毫秒转Canlendar: 获得一个Canlendar对象,通过 setTimeInMillis(long millis)设置时间
Date转Canlendar: 通过setTime(Date date)把Date设置给Canlendar