编程中的小技巧

1、数组与集合相关

(1)将一个list中的所有对象转换为另一个list对象

List testList1 = getTest1();
List 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 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);

你可能感兴趣的:(编程中的小技巧)