HashMap类
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射
java
import java.util.HashMap; // 引入 HashMap 类
// 创建HashMap对象
HashMap<Integer, String> map1 = new HashMap<Integer, String>(); // 键、值类型可不同
HashMap<Integer, Integer> map2 = new HashMap<Integer, Integer>(); // 键、值类型可相同
1.添加元素:put()
java
HashMap<Integer, String> map1 = new HashMap<Integer, String>();
map1.put(1,"a"); // {1=a}
map1.put(2,"b"); // {1=a,2=b}
2.访问元素:get()
java
// map1 : {1=a,2=b}
map1.get(1); // a
map1.get(2); // b
3.删除元素:remove()
java
// map1 : {1=a,2=b}
map1.remove(2); // {1=a}
map1.remove(1); // {}
4.清空所有键/值对:clear()
java
// map1 : {1=a,2=b}
map1.clear(); // {}
5.计算键/值对的数量:size()
java
// map1 : {1=a,2=b}
map1.size(); // 2
6.迭代集合中的元素
java
// 迭代key
for(Integer key : map1.keySet()){
.......
}
// 迭代value值
for(String value : map1.values()){
.......
}
7.复制一份 hashMap:clone()
java
// map1 : {1=a,2=b}
HashMap<Integer, String> map2 = (HashMap<Integer, String>)map1.clone();
// map2 : {1=a,2=b}
clone() 方法属于浅拷贝,只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存, 所以如果其中一个对象改变了这个地址,就会影响到另一个对象。
8.判断hashMap是否为空:isEmpty()
java
map.isEmpty(); // true OR false
9.批量添加元素:putAll()
java
// map1 : {1=a,2=b}
map2.putAll(map1); // map2 : {1=a,2=b}
10.插入不存在元素:putIfAbsent()
putIfAbsent() 方法会先判断指定的键(key)是否存在,不存在则将键/值对插入到 HashMap 中。
java
// map1 : {1=a,2=b}
map1.putIfAbsent(1,"c"); // map1 : {1=a,2=b}
map1.putIfAbsent(3,"a"); // map1 : {1=a,2=b,3=a}
11.检查是否存在指定的 key 对应的映射关系:containsKey()
java
// map1 : {1=a,2=b}
map1.containsKey(1); // true
map1.containsKey(3) // false
12.检查是否存在指定的 value 对应的映射关系:containsValue()
java
// map1 : {1=a,2=b}
map1.containsValue("a"); // true
map1.containsValue("c") // false
13.替换指定的 key 对应的 value:replace()
java
// map1 : {1=a,2=b}
map1.replace(1,"c"); // true | map1 : {1=c,2=b}
map1.replace(1,"a","d"); // false | map1 : {1=c,2=b}
map1.replace(1,"c","d"); // true | map1 : {1=d,2=b}
14.获取返回指定 key 对应对 value,如无则返回默认值:getOrDefault()
java
// map1 : {1=a,2=b}
map1.getOrDefault(1,"-1"); // a
map1.getOrDefault(3,"-1"); // -1
15.返回映射中包含的映射的 Set 视图:entrySet()
java
// map1 : {1=a,2=b}
map1.entrySet(); // [1=a,2=b]
16.返回映射中所有 key 组成的 Set 视图:setKey()
java
// map1 : {1=a,2=b}
map1.setKey(); // [1,2]
17.返回 hashMap 中存在的所有 value 值:values()
java
// map1 : {1=a,2=b}
map1.values(); // [a,b]
HashSet类
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合
java
import java.util.HashSet; // 引入 HashSet 类
// 创建HashSet对象
HashSet<Object> objectSet = new HashSet<Object>();
HashSet<String> stringSet = new HashSet<String>();
HashSet<Integer> integerSet = new HashSet<Integer>();
1.添加元素:add()
java
set.add("a"); // [a]
set.add("b"); // [a,b]
set.add("a"); // [a,b]
2.删除元素:remove()
java
// set:[a,b]
set.remove("b"); // [a]
set.remove("a"); // []
3.判断元素是否存在:contains()
java
// set:[a,b]
set.contains("a"); // true
set.contains("c"); // false
4.清空集合:clear()
java
// set:[a,b]
set.clear(); // []
5.计算集合数量:size()
java
// set:[a,b]
set.size(); // 2
6.迭代集合中的元素
java
for(String str : set){
......
}
Math类
Java 的 Math 包含了用于执行基本数学运算的属性和方法
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用
1.返回参数的绝对值:abs()
java
Math.abs(-1); // 1
Math.abs(1); // 1
Math.abs(-1.1) // 1.1
2.向上取整:ceil()
java
Math.ceil(100.12345); // 101.0
Math.ceil(100.72345); // 101.0
Math.ceil(-90.1); // -90.0
Math.ceil(-70); // -70.0
3.向下取整:floor()
java
Math.ceil(100.12345); // 100.0
Math.ceil(100.72345); // 100.0
Math.ceil(-90.1); // -91.0
Math.ceil(-70); // -70.0
4.返回最接近参数的整数值:rint()
java
Math.rint(100.12345); // 100.0
Math.rint(100.72345); // 101.0
Math.rint(-90.1); // -90.0
Math.rint(-70); // -70.0
// 需要注意的是,与四舍五入不同,当小数位为5时,它会选择优先选择为偶数的结果
Math.rint(100.5); // 100.0
Math.rint(101.5); // 102.0
Math.rint(-90.5); // -90.0
Math.rint(-91.5); // -92.0
5.四舍五入:round()
java
Math.round(100.12345); // 100
Math.round(100.72345); // 101
Math.round(-90.1); // -90
Math.round(-90.7); // -91
Math.round(100.5); // 101
Math.round(101.5); // 102
Math.round(-90.5); // -90
Math.round(-91.5); // -91
6.返回两数中的最小值:min()
java
Math.min(1,2); // 1
Math.min(-1,-2); // -2
Math.min(1.1,2.2); // 1.1
Math.min(0,-2); // -2
7.返回两数中的最小值:max()
java
Math.max(1,2); // 2
Math.max(-1,-2); // -1
Math.max(1.1,2.2); // 2.2
Math.max(0,-2); // 0
8.返回自然数底数e的参数次方:exp()
java
Math.exp(11); // e^11 : 59874.14171519782
9.返回参数的自然数底数e的对数值:log()
java
Math.log(11); // 2.3978952727983707
Math.log(Math.E); // 1.0
10.返回第一个参数的第二个参数次方:pow()
java
Math.pow(Math.E,11); // e^11 : 59874.14171519778
Math.pow(2,2); // 2^2 : 4.0
Math.pow(-1,2); // -5^2 : 1.0
11.求参数的算术平方根:sqrt()
java
Math.sqrt(4); // 2.0
Math.sqrt(0); // 0.0
Math.sqrt(-1); // NaN
12.返回一个随机数:random()
java
// 随机数范围为 0.0 =< Math.random < 1.0
Math.random() // 0.14075030148839085