subAreas.stream().filter(StringUtils::isNotEmpty).collect(Collectors.toList());
时间: 2024-04-28 18:25:18 浏览: 96
这是一个Java 8的流式操作,它使用了filter和collect方法。其中,subAreas是一个集合(可能是一个列表或者数组等),filter(StringUtils::isNotEmpty)的作用是筛选出集合中不为空的元素,StringUtils是一个Apache Commons Lang库中的工具类,isNotEmpty方法用于判断字符串是否不为空。最后使用collect(Collectors.toList())将筛选出来的元素转换为一个新的List集合并返回。
相关问题
省市县的递归用java怎么写
省市县的递归实现可以用Java语言来编写。以下是一个简单的示例代码:
```java
public class RecursionDemo {
// 定义一个省市县的数据结构,包含名称和下级地区列表
static class Area {
String name;
List<Area> subAreas;
public Area(String name, List<Area> subAreas) {
this.name = name;
this.subAreas = subAreas;
}
}
// 递归函数,用于输出省市县的名称
static void printAreaNames(Area area) {
System.out.println(area.name);
if (area.subAreas != null) {
for (Area subArea : area.subAreas) {
printAreaNames(subArea);
}
}
}
public static void main(String[] args) {
// 初始化省市县数据
Area county1 = new Area("县1", null);
Area county2 = new Area("县2", null);
Area city1 = new Area("市1", Arrays.asList(county1, county2));
Area city2 = new Area("市2", null);
Area province = new Area("省", Arrays.asList(city1, city2));
// 输出省市县的名称
printAreaNames(province);
}
}
```
在上面的示例代码中,我们首先定义了一个`Area`类来表示省市县的数据结构,包含名称和下级地区列表。然后定义了一个`printAreaNames`函数来递归输出省市县的名称,如果当前地区有下级地区,则继续递归输出下级地区的名称。最后在`main`函数中初始化了一个省市县的数据结构,并调用`printAreaNames`函数输出了所有地区的名称。
Java 递归查询省市县
在Java中,可以使用递归来查询省市县的层级关系。假设有一个地区的数据结构如下:
```java
class Area {
String name;
List<Area> subAreas;
}
```
可以定义一个递归函数来查询省市县的层级关系,例如:
```java
public class AreaUtils {
public static void main(String[] args) {
// 假设已经有了一个地区列表数据
List<Area> areas = getAreaData();
// 查询省市县
List<Area> provinces = getProvinces(areas);
for (Area province : provinces) {
System.out.println(province.name);
List<Area> cities = getCities(province);
for (Area city : cities) {
System.out.println("\t" + city.name);
List<Area> counties = getCounties(city);
for (Area county : counties) {
System.out.println("\t\t" + county.name);
}
}
}
}
public static List<Area> getProvinces(List<Area> areas) {
List<Area> provinces = new ArrayList<>();
for (Area area : areas) {
if (area.name.endsWith("0000")) {
provinces.add(area);
}
}
return provinces;
}
public static List<Area> getCities(Area province) {
return province.subAreas;
}
public static List<Area> getCounties(Area city) {
return city.subAreas;
}
// 获取地区数据的方法
public static List<Area> getAreaData() {
// TODO: 返回地区数据列表
}
}
```
这里假设地区数据已经存在,并且省级的地区编码以 "0000" 结尾,市级的地区编码不以 "0000" 结尾,县级的地区编码不以 "0000" 结尾。通过递归的方式,可以依次查询出所有的省市县层级关系。
需要注意的是,这里只是一个简单的示例,实际情况中可能需要根据具体的数据结构和业务需求进行相应的调整和扩展。
阅读全文