当前位置: 首页 > article >正文

【JAVA基础】Collections方法的具体使用方法

java基础中Collectionscollect(toList,toSet,toMap)的用法
在这里插入图片描述

package com.gaofeng;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class demo01 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        Collections.addAll(list,"张无忌-男-15","张无忌1-男-15","周芷若-女-20","小昭-女-18","张三丰-男-100","谢逊-男-40");
        List<String> collect = list.stream().filter(s -> "男".equals(s.split("-")[1])).collect(Collectors.toList());
        System.out.println(collect);

        Set<String> collect1 = list.stream().filter(s -> "男".equals(s.split("-")[1])).collect(Collectors.toSet());
        System.out.println(collect1);
        boolean contains = collect1.contains("张无忌-男-15");
        System.out.println(contains);
        Map<String, Integer> collect2 = list.stream().filter(s -> "男".equals(s.split("-")[1])).collect(Collectors.toMap(new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.split("-")[0];
            }
        }, new Function<String, Integer>() {
            @Override
            public Integer apply(String s) {
                return Integer.parseInt(s.split("-")[2]);
            }
        }));
        System.out.println(collect2);
        // 简化写法
        Map<String, Integer> collect3 = list.stream().filter(s -> "男".equals(s.split("-")[1])).collect(Collectors.toMap(
                s -> s.split("-")[0],
                s -> Integer.parseInt(s.split("-")[2])
        ));
        System.out.println(collect3);
    }
}

在这里插入图片描述

  • 算法练习1:

一个集合里面添加任意的数字,然后过滤掉技奇数,保留偶数

public class demo02 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        Collections.addAll(list,1,2,3,4,5,6,7,8,9,10);

        List<Integer> collect = list.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());
        System.out.println(collect);

    }
}

在这里插入图片描述

  • 算法练习2:

一个集合里面添加如下的姓名和年龄字符串数据,进行过滤处理

ArrayList<String> list = new ArrayList<>();
    Collections.addAll(list,"张三,23","李四,15","刘旺,30");

     Map<String, Integer> collect5 = list.stream().filter(s -> Integer.parseInt(s.split(",")[1]) > 24).collect(Collectors.toMap(new Function<String, String>() {
         @Override
         public String apply(String s) {
             return s.split(",")[0];
         }
     }, new Function<String, Integer>() {
         @Override
         public Integer apply(String s) {
             return Integer.parseInt(s.split(",")[1]);
         }
     }));
     System.out.println(collect5);

     Map<String, Integer> collect6 = list.stream().filter(s -> Integer.parseInt(s.split(",")[1]) > 24).collect(Collectors.toMap(s -> s.split(",")[0], s -> Integer.parseInt(s.split(",")[1])
     ));
   System.out.println(collect6);

在这里插入图片描述

  • 方法引用
  • 在这里插入图片描述
    在这里插入图片描述
public class demo04 {
    public static void main(String[] args) {
        Integer[] arr = {1,2,3,4,5,6,7,8,9};
//        Arrays.sort(arr, new Comparator<Integer>(){
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o2 - o1;
//            }
//        });
//        Arrays.sort(arr, (Integer o1, Integer o2) -> {
//                return o2 - o1;
//        });
//        Arrays.sort(arr, (o1, o2) -> o2 - o1);
        Arrays.sort(arr, demo04::compare);
        System.out.println(Arrays.toString(arr));
    }

    public static int compare(Integer o1 ,Integer o2 ){
        return  o2 - o1;
    }
}

http://www.kler.cn/a/473120.html

相关文章:

  • 自创“九转化形”算法设计,禁止抄袭
  • 数据结构:包装类和泛型
  • 【linux系统之redis6】redisTemplate的使用方法
  • Vscode辅助编码AI神器continue插件
  • 打开idea开发软件停留在加载弹出框页面进不去
  • Freemarker模板进行判空
  • 计算机网络 笔记 物理层
  • 【递归与分治】Leetcode23:合并K个升序链表
  • Redis--20--大Key问题解析
  • Mono里运行C#脚本26—CEE_ADD/MONO_CEE_ADD/OP_IADD/X86_ADD的转换过程
  • java项目学科竞赛管理系统的设计与实现源码(springboot+mysql+vue)
  • 预训练语言模型——BERT
  • 【免费】2000-2019年各省技术市场成交额数据
  • 字玩FontPlayer开发笔记9 Tauri2打包应用
  • Golang的并发编程框架比较
  • ASP.NET Core实现微服务--什么是微服务
  • Java语法总结
  • 【Uniapp-Vue3】computed计算属性用法及方法对比
  • Scratch024(糖饼印花)
  • 数据分析思维(九):分析方法——AARRR模型分析方法
  • docker minio镜像arm64架构
  • Ruby语言的软件开发工具
  • 精选2款.NET开源的博客系统
  • 表达式翻译 一
  • Agentic AI 深度剖析
  • Spark创建多种数据格式的DataFrame