用Java实现对List内的对象按照指定某一属性排序,还属性是由大写字母和数字组成的相同特征的字符串
时间: 2024-03-05 12:53:42 浏览: 86
可以使用Java 8的Stream API来实现对List内的对象按照指定属性排序,排序规则是由大写字母和数字组成的相同特征的字符串。具体实现可以参考以下代码:
```java
List<Object> list = ...; // 假设list中的元素类型为Object,且包含属性名为propertyName的属性
List<Object> sortedList = list.stream()
.sorted(Comparator.comparing(obj -> {
String propertyValue = getProperty(obj, "propertyName"); // 获取obj对象的属性propertyName的值
return propertyValue.replaceAll("\\d+", ""); // 去除数字
}).thenComparing(obj -> {
String propertyValue = getProperty(obj, "propertyName"); // 获取obj对象的属性propertyName的值
return Integer.parseInt(propertyValue.replaceAll("\\D+", "")); // 获取数字
}))
.collect(Collectors.toList());
```
其中,getProperty方法用于获取对象的指定属性值,可以自行实现。在Comparator中,首先按照属性值去除数字进行排序,如果属性值相同,则按照属性值中的数字进行排序。最后使用collect方法将排序后的结果转化为List类型。
阅读全文