目录
集合 转 数组
// 注意:list.toArray 如果没有指定泛型,得到的是 Object[] 向下转型会报错
List<String> list = Arrays.asList("a", "b", "c", "d", "e");
String[] strArray = list.toArray(new String[0]);
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
工作中示例
Long[] jobIds = (Long[]) appraiseSettings.stream().map(OperationAppraiseSetting::getJobId).toArray();
报错:[Ljava.lang.Object; cannot be cast to [Ljava.lang.Long;
因为.toArray()转换数组是Object[],相当于初始化数组就是Object[]类型
解决:
Long[] jobIds = appraiseSettings.stream().map(OperationAppraiseSetting::getJobId).toArray(Long[]::new);
数组 转 集合
Arrays.asList(strArray);
集合 转 string(并分割)
String collect = Arrays.asList("a", "b", "c", "d", "e").stream().collect(Collectors.joining(","));
或者
String collect = String.join(",", Arrays.asList("a", "b", "c", "d", "e"));
数组 转 字符串
String[] array = {"1", "43", "32"};
String str = String.join(",", array);
String str = Arrays.stream(array).collect(Collectors.joining(","));
StringBuffer sb = new StringBuffer();
for (String str : array) {
sb.append(str);
}
字符串转集合
List<Long> orderIds = Arrays.stream(str.split(",")).map(Long::valueOf).collect(Collectors.toList());
字符串 转 字符数组
String str="123456";
char[] c = str.toCharArray() ;
字符串去重(并分割)
String = deviceTypes = Arrays.stream(str.split(",")).distinct().collect(Collectors.joining(","));
字符串拼接(并分割)
new StringJoiner(":")).add(keyEnum.key).add("TENANT_ID").add(toString(tenantId));
简单类型
由int类型转换为long类型是向上转换,可以直接进行隐式转换
由long类型转换为int类型是向下转换,可能会出现数据溢出情况
Java字符串拼接写法
一、joiner.on
String result = Joiner.on(",").join(list);
二、StringBuilder
StringBuilder strBur = new StringBuilder(); list.forEach(val -> { strBur.append(val).append("#"); }); strBur.toString();
三、Stream
String result = list.stream().collect(Collectors.joining("_"));
json转具体对象
String jsonStr = JSON.toJSONString(data);
T t = JSONObject.parseObject(jsonStr, new TypeReference<List<SkuHasStockTo>>() {});