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()永远不会执行