String contains 与 list contains
时间: 2024-11-15 16:27:40 浏览: 21
`String.contains()` 和 `List.contains()` 都是用来判断某个元素是否存在于集合中的方法,但它们应用于不同类型的数据结构。
1. `String.contains()` 是 Java 中 `String` 类的一个实例方法,用于检查给定字符串是否包含指定的字符序列。它返回一个布尔值,如果原始字符串中包含该子串,则返回 `true`,否则返回 `false`。例如:
```java
String str = "Hello World";
boolean containsSubstring = str.contains("World"); // 返回 true
```
2. `List.contains()` 是 `List` 接口(如 ArrayList、LinkedList 等)的一个通用方法,适用于任何实现了 List 接口的对象。这个方法接受一个元素作为参数,检查列表中是否存在相同的对象,同样返回一个布尔值。比如:
```java
List<String> myList = Arrays.asList("Apple", "Banana", "Cherry");
boolean containsElement = myList.contains("Banana"); // 返回 true
```
相关问题
List<SchemaRowRuleEo> userRowRuleList = schemaRowRuleList.stream() .filter(schemaRowRuleEo -> { List<String> userList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionUserList(), String.class); List<String> orgList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionOrgList(), String.class); return userList.contains(userUid) || orgList.contains(orgCode) || userList.contains("") || orgList.contains(""); }) .collect(Collectors.toList());OrgCode为null会异常
如果 `orgCode` 有可能为 `null`,则可以在 `filter` 方法中加入一个判断,避免出现 `NullPointerException` 异常。
例如,可以使用 `Objects.equals()` 方法来比较 `orgCode` 是否等于 `null`。修改后的代码如下:
```
List<SchemaRowRuleEo> userRowRuleList = schemaRowRuleList.stream()
.filter(schemaRowRuleEo -> {
List<String> userList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionUserList(), String.class);
List<String> orgList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionOrgList(), String.class);
return userList.contains(userUid) || orgList.contains(orgCode) || userList.contains("") || orgList.contains("") || Objects.equals(orgCode, null);
})
.collect(Collectors.toList());
```
这样,即使 `orgCode` 为 `null`,也不会抛出异常了。
List<SchemaRowRuleEo> userRowRuleList = schemaRowRuleList.stream() .filter(schemaRowRuleEo -> { List<String> userList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionUserList(), String.class); List<String> orgList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionOrgList(), String.class); return userList.contains(userUid) || orgList.contains(orgCode) || userList.contains("*") || orgList.contains("*"); }) .collect(Collectors.toList());OrgCode为null会异常
是的,如果 `orgCode` 为 `null`,那么在执行 `orgList.contains(orgCode)` 时会抛出 `NullPointerException` 异常。为了避免这种情况,你可以先判断 `orgCode` 是否为 `null`,如果为 `null` 则不需要进行 `orgList.contains(orgCode)` 的操作。可以将代码改为如下:
```
List<SchemaRowRuleEo> userRowRuleList = schemaRowRuleList.stream()
.filter(schemaRowRuleEo -> {
List<String> userList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionUserList(), String.class);
List<String> orgList = JSONObject.parseArray(schemaRowRuleEo.getRowPermissionOrgList(), String.class);
return userList.contains(userUid) || (orgCode != null && orgList.contains(orgCode)) || userList.contains("*") || orgList.contains("*");
})
.collect(Collectors.toList());
```
这样可以避免 `NullPointerException` 异常。
阅读全文