list里的数据为6300 6004 6050 6006使用list.stream().filter(),排除掉含有3和5的数据,得到新的list数据6004,6006
该回答引用GPTᴼᴾᴱᴺᴬᴵ
可以使用Java 8的Stream API中的filter()方法和lambda表达式来实现对List中数据的过滤和筛选,具体代码如下:
List<Integer> list = Arrays.asList(6300, 6004, 6050, 6006);
List<Integer> filteredList = list.stream()
.filter(num -> !String.valueOf(num).contains("3") && !String.valueOf(num).contains("5"))
.collect(Collectors.toList());
System.out.println(filteredList);
代码中,先将要处理的数据存储在List中,然后使用stream()方法将其转化为一个Stream对象,再使用filter()方法进行筛选,筛选条件使用lambda表达式实现,即判断该数字的字符串表示中是否包含字符"3"或"5",如果不包含,则表示该数字不含有3或5,符合筛选条件,将其保留。最后使用collect()方法将Stream对象转换回List对象,即可得到符合条件的数字列表。
list.stream().filter(v -> !ObjectUtils.isEmpty(v) && !v.contains("3") && !v.contains("5")).collect(Collectors.toList());
ArrayList<String> strings = new ArrayList<String>() {
{
add("6300");
add("6004");
add("6050");
add("6006");
}
};
List<String> collect = strings.stream().filter(s -> !s.contains("3") && !s.contains("5")).collect(Collectors.toList());
System.out.println(collect);