记java工作中的坑

1
使用json中

public static  <T> T  reSerializableJson(String jsonStr, TypeReference<T> type) {
        return JSONArray.parseObject(jsonStr, type);
    }

在这里插入图片描述
这里将默认使用HashMap, 如果我们的类字段使用ConcurrentHashMap的话,可能会出现奇奇怪怪的问题,譬如

ConcurrentHashMap的get(key)中key不能null,会报nullpointException
HashMap则不会
程序会表现运行异常,重启走json序列化反而正常的异像

2
有时候想随机获取list中的不重复元素,同时又指定了要获取的数量,这时候用list.get(new Random().nextInt(wannaLength))
担心拿到的是不是重复的,当然你也可以写代码去维护,比如再用个list去存已经取到的,然后每次获取用alreadyGetList去判断是否是重复的

wannaList = new ArrayList();
if(list.size() > wannaLent) {
wannaLength = list.size();
}
for(int i; i< wannaLength) {
	element = list.get(new Random().nextInt(list.size()));
	while(alreadyGetList.contains(element))  {
	//继续获取, 直到不存在
	element = list.get(new Random().nextInt(list.size()));
	}
}

改用如下方法: 将list进行shuffle 打乱

wannaList = new ArrayList();
if(list.size() > wannaLent) {
wannaLength = list.size();
}
Collections.shuffle(list);
for(int i; i< wannaLength) {
	element = list.get(i);
}

取整型数列中1 3 5 7 9 结尾的数字的和
int total = IntStream.range(0, source.length).filter(i -> i % 2 == 1).map(i -> source[i]).reduce(0, (x, y) -> x + y);

Arrays.asList(…) 返回的ArrayList是重写过后的ArrayList 其中元素只读不可改


public boolean test() {
// 做一堆操作
boolean a = false;
a = true && false;
return a;
}

public void test() {
boolean isDiff = true;
return isDiff || test();
}

test()永远不会执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值