优化以下代码 List<String> rualist = new ArrayList<>(); String createUserAccount = spaceCard.getCreateUserAccount(); String testUserAccount = spaceCard.getTestUserAccount(); String principalPerson = spaceCard. getPrincipalPerson(); String productUserAccount = spaceCard.getProductUserAccount(); String concernPerson = spaceCard . getConcernPerson(); if(createUserAccount!=null){ rualist.addAll(Arrays.asList(createUserAccount.split( ","))); } if(testUserAccount!=null){ rualist.addAll(Arrays.asList(testUserAccount.split( ","))); } if(principalPerson!=null){ rualist.addAll(Arrays.asList(principalPerson.split (","))); } if (productUserAccount!=null){ rualist.addAll(Arrays.asList(productUserAccount.split(","))); } if(concernPerson!=null){ rualist.addAll(Arrays.asList(concernPerson.split(","))); } String value = StringUtils.join(rualist.toArray(),",");
时间: 2023-11-27 13:49:09 浏览: 126
可以考虑使用 Java 8 的 Stream API 简化代码,如下所示:
```
List<String> rualist = Stream.of(spaceCard.getCreateUserAccount(), spaceCard.getTestUserAccount(),
spaceCard.getPrincipalPerson(), spaceCard.getProductUserAccount(), spaceCard.getConcernPerson())
.filter(Objects::nonNull)
.flatMap(s -> Arrays.stream(s.split(",")))
.collect(Collectors.toList());
String value = String.join(",", rualist);
```
这样可以将代码压缩为几行,并且使用了函数式编程的思想,提高了代码的可读性和简洁性。
相关问题
List<String> list = new ArrayList<String>();和List<String> list = new ArrayList<>();有什么区别,两者使用时因注意什么
这两种写法没有任何区别,都可以创建一个泛型为String类型的ArrayList。
在Java 7之前,List<String> list = new ArrayList<String>();是正确的写法,其中的类型参数需要在<>中指定。而Java 7开始,引入了“菱形操作符”(diamond operator),可以省略右侧的类型参数,即List<String> list = new ArrayList<>(); 也是正确的写法。
在使用时,需要注意以下几点:
1.使用时需要注意类型匹配,即List中的元素类型应与定义时指定的类型参数一致。
2.需要使用List接口中定义的方法,例如add(),remove(),get()等等。
3.在遍历List时,可以使用for-each循环,也可以使用传统的for循环,但需要注意循环变量的类型应与List中的元素类型一致。
JAVA中ArrayList<Integer> arrayList=new ArrayList<>()和List<String>list=new ArrayList<>()的区别
`ArrayList<Integer> arrayList=new ArrayList<>()` 和 `List<String> list=new ArrayList<>()` 的区别在于声明的泛型类型不同。
`ArrayList<Integer>` 声明了一个 `ArrayList` 对象,泛型类型为 `Integer`。这意味着这个 `ArrayList` 只能存储 `Integer` 类型的数据。
`List<String> list=new ArrayList<>()` 声明了一个 `List` 对象,泛型类型为 `String`。这意味着这个 `List` 可以存储任何 `String` 类型的数据,包括 `String` 类型的子类。
另外,需要注意的是,`List` 是一个接口,而 `ArrayList` 是 `List` 接口的一个实现类。因此,`ArrayList` 是 `List` 的一种特殊形式,可以使用 `List` 接口中的所有方法,同时也可以使用 `ArrayList` 自己的方法。
阅读全文