1,list.add(i,e)
向第 i 位插入e
如:
before --> [0,1,2,3,4,5]
向第0位插入6
after --> [6,0,1,2,3,4,5]
List<Integer> tempList = new ArrayList<Integer>();
tempList.add(4);
tempList.add(15);
tempList.add(7);
tempList.add(8);
tempList.add(1);
for(int i=0;i<tempList.size();i++){
if(tempList.get(i)==1){
tempList.add(0,tempList.remove(i));
}
}
2,stream
java 8 特性之一
2.1, lambda ['læmdə] 表達式
使用方式
(parameters) -> expression
或
(parameters) ->{ statements; }
參考:lambda 表達式
2.2,stream 流
主要方法
stream
// 保留 boolean 爲 true 的元素
--filter(T -> boolean)
// 將流中的每一個元素 T 映射爲 R(類似類型轉換)
--map(T -> R)
// 排序
--sorted((T, T) -> int):排序後再排序
--limit
--skip
--collect
2.2.1 List
時間降序排列
list.stream().sorted((x,y)->{
// 如果時間爲空,放到末尾
if(StringUtil.isEmpty(x.get("time"))) return 1;
if(StringUtil.isEmpty(y.get("time"))) return -1;
return y.get("time").compareTo(x.get("time"));
}).collect(collectors.tolist());
2.2.2 JSONArray
@1:按【時間】降序排列
jsonArray.stream().sorted((x,y)->{
String timeX = ((JSONObject) x).getString("time");
String timeY = ((JSONObject) y).getString("time");
if(StringUtil.isEmpty(timeX)) return 1;
if(StringUtil.isEmpty(timeY)) return -1;
return timeY.compareTo(timeX);
}).collect(Collectors.toCollection(JSONArray::new));
@2:逆序 JSONArray
// JSONArray轉list
List<JSONObject> list = JSONArray.parseArray(dataArray.toJSONString(), JSONObject.class);
Collections.reverse(list);
// list轉JSONArray
JSONArray _dataArray = JSONArray.parseArray(list.toString());
參考鏈接:
https://www.runoob.com/java/java8-lambda-expressions.html
https://www.runoob.com/java/java8-streams.html
https://www.jianshu.com/p/0bb4daf6c800?from=groupmessage
https://www.jianshu.com/p/e429c517e9cb
https://www.cnblogs.com/xy-ouyang/p/11514712.html
http://ddrv.cn/a/286710