1、数组与集合相关
(1)将一个list中的所有对象转换为另一个list对象
List<Test1> testList1 = getTest1();
List<Test2> testList2 = testList1 .stream().map(test -> {
Test2 t2 = new Test2();
t2.setName(test.getName());
t2.setAge(test.getAge());
return t2;
}).collect(Collectors.toList());
(2)判断两个数组是否相等
char[] chars1 = s.toCharArray();
char[] chars2 = t.toCharArray();
return Arrays.equals(chars1,chars2);
(3)获取Map集合中最大值和最小值
Map<Integer, Integer> count = new HashMap();
int max = Collections.max(count.values());
int min = Collections.min(count.values());
2、位运算
(1)取出一个数最右端的1
int a = 3;
int right = a&(~a+1);
3、Java中的常用类
(1)随机生成一定范围内的数
Math.random()
-> [0,1)所有小数,等概率返回一个
Math.random()*N
->[0,N)所有小数,等概率返回一个
(int)(Math.random()*N)
->[0,N-1]所有整数,等概率返回一个
(2)random.nextInt()的用法
- 不带参数的nextInt()会生成所有有效的整数(包含正数,负数,0)
- 带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数,例如:
int x=new Random.nextInt(100);
会生成一个0~99的任意整数。 - 生成一个指定范围内的整数,调用方法randomInt(10,20);则会生成一个[10,20]集合内的任意整数。
private static int randomInt(int min, int max){
return new Random().nextInt(max)%(max-min+1) + min;
}
4、String相关
(1)StringBuilder删除最后一个字符
StringBuilder sb= new StringBuilder();
sb.append("天使").append("的翅膀").append("_");
String result = sb.deleteCharAt(sb.length() - 1).toString();
//此时result=天使的翅膀
(2)空串与null不同,它有自己的串长度(0)和内容(空)。
检查一个字符串是否为空:
if(str.length() == 0)或if(str.equals(""))
检查一个字符串既不是null也不为空串:
if(str != null && str.length() != 0)
5、Object相关
(1)判断两个对象是否相等
//在比较两个对象的时候,Object的equals方法容易抛出空指针异常,Objects类中的equals方法就优化了这个问题
Object a = new Son(8);
Object b = new Son(10);
Boolean boolean = Objects.equals(a, b);