List<String> 去掉null java
时间: 2023-11-11 16:50:43 浏览: 106
要去掉 List<String> 中的 null 值,你可以使用 Java 8 的 Stream API 来实现。你可以使用 `filter` 方法来过滤掉 null 值。下面是一个示例代码:
```java
List<String> list = Arrays.asList("A", null, "B", null, "C");
List<String> filteredList = list.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());
System.out.println(filteredList);
```
这段代码将会输出 `["A", "B", "C"]`,即过滤掉了原始列表中的 null 值。
相关问题
List<String>集合 如何转成 String[]
将 List<String> 集合转换为 String[] 数组的过程比较简单,只需要使用 List 的 toArray 方法即可完成转换。
下面是将 List<String> 转换为 String[] 的 Java 代码示例:
```java
List<String> list = ...;
// 使用 List 的 toArray 方法将 List<String> 转换为 String[] 数组
String[] stringArray = list.toArray(new String[list.size()]);
```
其中,toArray 方法的参数需要传入一个类型为 T[] 的数组,该数组的长度至少为 list.size(),否则 toArray 方法将创建一个新的数组。在这里,我们创建了一个 String[] 数组,将其作为 toArray 方法的参数传入即可完成转换。
需要注意的是,如果 List 中包含了 null 元素,那么转换后的 String[] 数组中对应的位置会是 null。如果希望去除 null 元素,可以使用 Java 8 中新增的 stream 方法进行过滤,如下所示:
```java
List<String> list = ...;
// 使用 List 的 stream 方法过滤掉 null 元素,并将结果转换为 String[] 数组
String[] stringArray = list.stream().filter(Objects::nonNull).toArray(String[]::new);
```
这里使用了 Objects 的 nonNull 静态方法来过滤 null 元素,然后使用 toArray 方法将结果转换为 String[] 数组。
List<String> listId = new ArrayList<>(Arrays.asList(ids.split(",")));怎么让他和数据库表列的JDBC匹配
当你想要把一个字符串列表(`List<String>`) `listId` 插入到数据库,特别是当这个列表来自于CSV格式的逗号分隔字符串(`String[] ids.split(",")`)时,你需要先确保列表元素的数据类型和数据库表对应列的JDBC类型兼容。如果你的数据库列期望的是基本类型(如Integer, String等)或预定义的JDBC类型,这里有一些步骤可以参考:
1. **检查列类型**:首先确认数据库表对应的列(`listId`应该映射到的那个列)是什么类型,例如整数(Integer)、字符(String)或其他特定类型。
2. **转换列表元素**:如果数据库列是基本类型,那么需要将字符串转换成相应的类型。例如,如果列是Integer类型,你可以这样做:
```java
List<Integer> intList = new ArrayList<>();
for (String id : ids.split(",")) {
intList.add(Integer.parseInt(id.trim()));
}
```
如果是String类型,无需转换。
3. **设置JDBC类型**:在MyBatis的XML映射文件或注解中,确保`listId`的映射设置正确的JDBC类型。例如:
- 对于Integer列,映射可能像这样:`javaType=java.util.List<java.lang.Integer>` 和 `jdbcType=INTEGER`
- 对于String列,保持默认的`javaType=java.util.List<java.lang.String>` 即可。
4. **批量插入**:MyBatis提供了批量插入功能(如`insertAll()`),这样可以直接一次性将整个列表插入,减少单条操作的开销。
5. **处理空值**:如果可能的列表元素是空串,记得添加判断并处理,避免插入NULL值,除非数据库允许NULL。
```java
for (String id : ids.split(",")) {
if (!id.isEmpty()) { // 或者使用trim()去除首尾空格
listId.add(id);
}
}
```
最后,在MyBatis的Mapper接口或XML文件中,确保参数映射与实际的数据库表列类型一致,或者适当地设置`nullValue`和`resultType`以处理空值。
阅读全文