list.stream().filter()方法

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);