JAVA的工具人Math、Arrays、Collections
java.lang.Math
-
Math
包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。 -
所有方法均是静态方法
常用方法 | 解释 | 参数 |
---|---|---|
abs(<参数>) | 绝对值 | double,float,int,long |
pow(double a, double b) | a是底,b是幂 | double |
random() | [0,1)的随机数 | 无 |
max(<参数1>,<参数2>) | 最大值 | double,float,int,long |
min(<参数1>,<参数2>) | 最小值 | double,float,int,long |
multiplyExact(<参数1>,<参数2>) | 乘积 | 参数1、参数2类型可以不一样 int,long |
round(double a) | 四舍五入 | double,float |
sqrt(double a) | 开方 | double |
addExact(<参数1>,<参数2>) | 和,溢出抛出异常 | 参数1、参数2类型可以不一样 int,long |
ceil(
|
大于等于该参数的最小值 | double |
floor(
|
小于等于该参数的最大值 | double |
log(
|
以e为底的对数 | double |
log10(
|
以10为底的对数 | double |
java.util.Arrays
-
该类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。
-
这个类中的方法都抛出一个
NullPointerException
,如果指定的数组引用为null,除非另有说明。 -
包含在此类的方法中的文件包括的实施方式的简要描述。这些描述应被视为实施说明 ,而不是说明书的一部分 。只要规范本身得到遵守,实现者就可以随意替代其他算法。(例如,
sort(Object[])
使用的算法不一定是sort(Object[])
,但它必须是稳定的 。)
Arrays.asList(T... a)
List<String> list = Arrays.asList("小强", "小花");
// list.add("小虎");报错
- 返回由指定数组支持的固定大小的列表。
- 原因分析:
Arrays.asList("小强", "小花")
返回一个内部类java.util.Arrays.ArrayList
继承了接口java.util.AbstractList
,但并没有实现add()
方法。所以不可变长。和我们所说的java.util.ArrayList
不是一个东西,不过名字相同罢了。
Arrays.bianarySearch(<参数>[] a ,参数 b)
-
返回下标,如果没找到返回负数
-
使用二进制搜索算法搜索指定值的指定字节数组的范围。 在进行此呼叫之前,范围必须按照
sort(byte[], int, int)
方法进行排序。 如果没有排序,结果是未定义的。 如果范围包含具有指定值的多个元素,则不能保证将找到哪个元素。
int[] a = {3,5,2,10,31,30};
Arrays.sort(a);
int i = Arrays.binarySearch(a, 30);
Arrays.copyof(<类型>[], int newLength)
int[] a = {3,5,2,10,31,30};
int[] ints = Arrays.copyOf(a, 3);
Arrays.copyOfRange(<类型>[], int from , int to )
int[] ints1 = Arrays.copyOfRange(a, 2, 4);
Arrays.equals(<类型>[] a, <类型>[] b)
- 比较数组a,b中元素列表是否相等
int[] a = {3,5,2,10,31,30};
int[] b = Arrays.copyOf(a, 6);
boolean b1 = Arrays.equals(a, b);
// 结果为true
System.out.println(b1);
// 结果为false
System.out.println(a==b);
Arrays.fill(<类型>[] a, <类型> val)
int[] a = new int[]{3, 5, 2, 10, 31, 30};
// a = {10,10,10,10,10,10};
Arrays.fill(a,10);
Arrays.setAll(<类型>[] a, generator)
- IntToDoubleFunction
这是一个功能界面,因此可以用作lambda表达式或方法引用的赋值对象
Arrays.toString(<类型>[] a)
- 返回指定数组的内容的字符串表示形式。
java.util.Collections
java.util.Collections
对 集合的操作,类似java.util.Arrays
对数组的操作
Modifier and Type | 方法 | 描述 |
---|---|---|
static boolean |
addAll(Collection c, T... elements) |
将所有指定的元素添加到指定的集合。 |
static Queue |
asLifoQueue(Deque deque) |
返回Deque 作为先进先出( Lifo ) Queue 的视图 。 |
static int |
binarySearch(List> list, T key) |
使用二叉搜索算法搜索指定对象的指定列表。 |
static int |
binarySearch(List list, T key, Comparator c) |
使用二叉搜索算法搜索指定对象的指定列表。 |
static Collection |
checkedCollection(Collection c, Class type) |
返回指定集合的动态类型安全视图。 |
static List |
checkedList(List list, Class type) |
返回指定列表的动态类型安全视图。 |
static Map |
checkedMap(Map m, Class keyType, Class valueType) |
返回指定地图的动态类型安全视图。 |
static NavigableMap |
checkedNavigableMap(NavigableMap m, Class keyType, Class valueType) |
返回指定可导航地图的动态类型安全视图。 |
static NavigableSet |
checkedNavigableSet(NavigableSet s, Class type) |
返回指定的可导航集的动态类型安全视图。 |
static Queue |
checkedQueue(Queue queue, Class type) |
返回指定队列的动态类型安全视图。 |
static Set |
checkedSet(Set s, Class type) |
返回指定集合的动态类型安全视图。 |
static SortedMap |
checkedSortedMap(SortedMap m, Class keyType, Class valueType) |
返回指定排序映射的动态类型安全视图。 |
static SortedSet |
checkedSortedSet(SortedSet s, Class type) |
返回指定排序集的动态类型安全视图。 |
static void |
copy(List dest, List src) |
将所有元素从一个列表复制到另一个列表中。 |
static boolean |
disjoint(Collection c1, Collection c2) |
如果两个指定的集合没有共同的元素,则返回 true 。 |
static Enumeration |
emptyEnumeration() |
返回没有元素的枚举。 |
static Iterator |
emptyIterator() |
返回没有元素的迭代器。 |
static List |
emptyList() |
返回空列表(immutable)。 |
static ListIterator |
emptyListIterator() |
返回没有元素的列表迭代器。 |
static Map |
emptyMap() |
返回空的地图(不可变)。 |
static NavigableMap |
emptyNavigableMap() |
返回空导航地图(不可变)。 |
static NavigableSet |
emptyNavigableSet() |
返回一个空导航集(immutable)。 |
static Set |
emptySet() |
返回一个空集(immutable)。 |
static SortedMap |
emptySortedMap() |
返回空的排序映射(immutable)。 |
static SortedSet |
emptySortedSet() |
返回一个空的排序集(immutable)。 |
static Enumeration |
enumeration(Collection c) |
返回指定集合的枚举。 |
static void |
fill(List list, T obj) |
用指定的元素替换指定列表的所有元素。 |
static int |
frequency(Collection c, Object o) |
返回指定集合中与指定对象相等的元素数。 |
static int |
indexOfSubList(List source, List target) |
返回指定源列表中指定目标列表的第一次出现的起始位置,如果没有此类事件,则返回-1。 |
static int |
lastIndexOfSubList(List source, List target) |
返回指定源列表中指定目标列表的最后一次出现的起始位置,如果没有此类事件则返回-1。 |
static ArrayList |
list(Enumeration e) |
返回一个数组列表,其中包含由枚举返回的顺序由指定的枚举返回的元素。 |
static >T |
max(Collection coll) |
根据其元素的 自然顺序返回给定集合的最大元素。 |
static T |
max(Collection coll, Comparator comp) |
根据指定的比较器引发的顺序返回给定集合的最大元素。 |
static >T |
min(Collection coll) |
根据其元素的 自然顺序返回给定集合的最小元素。 |
static T |
min(Collection coll, Comparator comp) |
根据指定的比较器引发的顺序返回给定集合的最小元素。 |
static List |
nCopies(int n, T o) |
返回由指定对象的 n 副本组成的不可变列表。 |
static Set |
newSetFromMap(Map map) |
返回由指定地图支持的集合。 |
static boolean |
replaceAll(List list, T oldVal, T newVal) |
将列表中一个指定值的所有出现替换为另一个。 |
static void |
reverse(List list) |
反转指定列表中元素的顺序。 |
static Comparator |
reverseOrder() |
返回一个比较器, Comparable 实现 Comparable 接口的对象集合施加了 自然排序的相反。 |
static Comparator |
reverseOrder(Comparator cmp) |
返回一个比较器,它强制指定比较器的反向排序。 |
static void |
rotate(List list, int distance) |
将指定列表中的元素旋转指定的距离。 |
static void |
shuffle(List list) |
使用默认的随机源随机排列指定的列表。 |
static void |
shuffle(List list, Random rnd) |
使用指定的随机源随机排列指定的列表。 |
static Set |
singleton(T o) |
返回一个只包含指定对象的不可变组。 |
static List |
singletonList(T o) |
返回一个只包含指定对象的不可变列表。 |
static Map |
singletonMap(K key, V value) |
返回一个不可变的地图,只将指定的键映射到指定的值。 |
static >void |
sort(List list) |
根据其元素的natural ordering按照升序排列指定的列表。 |
static void |
sort(List list, Comparator c) |
根据指定的比较器引起的顺序对指定的列表进行排序。 |
static void |
swap(List list, int i, int j) |
交换指定列表中指定位置的元素。 |
static Collection |
synchronizedCollection(Collection c) |
返回由指定集合支持的同步(线程安全)集合。 |
static List |
synchronizedList(List list) |
返回由指定列表支持的同步(线程安全)列表。 |
static Map |
synchronizedMap(Map m) |
返回由指定地图支持的同步(线程安全)映射。 |
static NavigableMap |
synchronizedNavigableMap(NavigableMap m) |
返回由指定的可导航地图支持的同步(线程安全)可导航地图。 |
static NavigableSet |
synchronizedNavigableSet(NavigableSet s) |
返回由指定的可导航集支持的同步(线程安全)可导航集。 |
static Set |
synchronizedSet(Set s) |
返回由指定集合支持的同步(线程安全)集。 |
static SortedMap |
synchronizedSortedMap(SortedMap m) |
返回由指定的排序映射支持的同步(线程安全)排序映射。 |
static SortedSet |
synchronizedSortedSet(SortedSet s) |
返回由指定的排序集支持的同步(线程安全)排序集。 |
static Collection |
unmodifiableCollection(Collection c) |
返回指定集合的不可修改视图。 |
static List |
unmodifiableList(List list) |
返回指定列表的不可修改视图。 |
static Map |
unmodifiableMap(Map m) |
返回指定地图的不可修改视图。 |
static NavigableMap |
unmodifiableNavigableMap(NavigableMap m) |
返回指定可导航地图的不可修改视图。 |
static NavigableSet |
unmodifiableNavigableSet(NavigableSet s) |
返回指定的可导航集合的不可修改的视图。 |
static Set |
unmodifiableSet(Set s) |
返回指定集合的不可修改视图。 |
static SortedMap |
unmodifiableSortedMap(SortedMap m) |
返回指定排序映射的不可修改视图。 |
static SortedSet |
unmodifiableSortedSet(SortedSet s) |
返回指定排序集的不可修改视图。 |