list 處理

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章