private static List<String> matchDisNames(List<String> disNames,List<String> keyWords){ List<String> result = new ArrayList<>(); for (String disName:disNames){ for (String kw:keyWords){ if (!"".equals(kw) && disName.contains(kw)){ result.add(disName); break; } } } return result; } 优化
时间: 2023-12-06 15:44:50 浏览: 27
这段代码可以进行如下优化:
1. 避免对空字符串进行无意义的匹配,可以在传入关键词列表时进行过滤,去除空字符串。
2. 可以利用 Java 8 的 Stream API 进行简化,使代码更加简洁易读。
优化后的代码如下:
```
private static List<String> matchDisNames(List<String> disNames, List<String> keyWords) {
return disNames.stream()
.filter(disName -> keyWords.stream().anyMatch(kw -> !kw.isEmpty() && disName.contains(kw)))
.collect(Collectors.toList());
}
```
这个版本使用了 lambda 表达式和 Stream API 来处理集合,可以更加高效和简洁地实现同样的功能。
相关问题
List<String>arrayList = new ArrayList< String>();
List<String>arrayList = new ArrayList< String>();是一个创建ArrayList对象的语句,其中List<String>表示这是一个泛型类型,只能存储字符串类型的数据。ArrayList是List接口的一个实现类,可以用来创建一个可变长度的数组。下面是一个例子:
```java
List<String> arrayList = new ArrayList<String>();
arrayList.add("apple");
arrayList.add("banana");
arrayList.add("orange");
System.out.println(arrayList); // 输出:[apple, banana, orange]
```
List<String> scheduleDateUnList = new ArrayList<String>;
这是一个创建了一个空的ArrayList对象,该对象可以存储String类型的元素。在Java中,List是一个接口,ArrayList是List接口的一个实现类。因此,我们可以使用ArrayList来创建一个List对象,如下所示:
```java
List<String> scheduleDateUnList = new ArrayList<String>();
```
这里的`<String>`表示这个List对象只能存储String类型的元素。我们可以使用`add()`方法向这个List对象中添加元素,例如:
```java
scheduleDateUnList.add("2022-01-01");
scheduleDateUnList.add("2022-01-02");
scheduleDateUnList.add("2022-01-03");
```
我们也可以使用`get()`方法获取List对象中的元素,例如:
```java
String firstDate = scheduleDateUnList.get(0);
```
这将返回List对象中的第一个元素,即"2022-01-01"。需要注意的是,List对象中的元素是有序的,因此我们可以使用`get()`方法根据索引获取元素。