4.8学习总结 贪心算法+Stream流

++贪心算法:++

找到局部最优->从而推导全局最优。

Java练习:

++获取随机验证码:++

java 复制代码
import java.util.*;
import java.util.function.BiConsumer;
public class test {
    public static void main(String[] args) {
        System.out.println(createCode(5));
    }
    public static String createCode(int n) {
        Random r=new Random();
        String code="";
        for(int i=0;i<n;i++){
            int type=r.nextInt(3);
            switch(type){
                case 0:
                    code+=r.nextInt(10);
                    break;
                case 1:
                    char chh1=(char)(r.nextInt(26)+65);
                    code+=chh1;
                    break;
                case 2:
                    char chh2=(char)(r.nextInt(26)+97);
                    code+=chh2;
                    break;
            }
        }
        return code;
    }
}

++获取平均数:++

java 复制代码
import java.util.*;
import java.util.function.BiConsumer;
public class test {
    public static void main(String[] args) {
        System.out.println(getAvrge(6));//6为学生个数
    }
    public static double getAvrge(int number){
        Scanner sc=new Scanner(System.in);
        int[] scors=new int[number];
        for(int i=0;i<scors.length;i++){
            System.out.println("请输入第"+(i+1)+"个学生的成绩");
            int score=sc.nextInt();
            scors[i]=score;
        }
        int sum=0;
        int max=scors[0];
        int min=scors[0];
        for(int i=0;i<scors.length;i++){
            int score=scors[i];
            sum+=score;
            if(score>max){
                max=score;
            }
            if(score<min){
                min=score;
            }
        }
        return 1.0*(sum-max-min)/(scors.length-2);
    }
}

Stream流:

java 复制代码
import java.util.*;
import java.util.function.BiConsumer;
public class test {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        list.add("张婧仪");
        list.add("周雨彤");
        list.add("赵丽颖");
        list.add("张张");
        list.add("张凌赫");
        list.stream().filter(name->name.startsWith("张")).filter(name->name.length()==3).forEach(name->System.out.println(name));
        /*ArrayList<String> list1=new ArrayList<>();
        for(String name:list){
            if(name.startsWith("张")){
                list1.add(name);
            }
        }
        System.out.println(list1);
        ArrayList<String> list2=new ArrayList<>();
        for(String name:list1){
            if(name.length()==3){
                list2.add(name);
            }
        }
        System.out.println(list2);*/
    }
}

最长的那行代码等于注释掉的代码。

HashMap不能保证存和取的顺序的,只能保证内容不变。

相关推荐
Lhappy嘻嘻4 小时前
Java IO|File 文件操作 + 字节流 / 字符流完整笔记 + 递归删除文件实战
java·笔记·php
伊玛目的门徒5 小时前
试用leetcode之典中典 二数之和问题
java·算法·leetcode
xian_wwq7 小时前
【学习笔记】模型权重管理:Safetensors与私有化Hub(23/35)
笔记·学习
其实防守也摸鱼7 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
ctrl_v助手7 小时前
Halcon学习笔记2
人工智能·笔记·学习
懒鸟一枚7 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
YUS云生8 小时前
Python学习笔记·第31天:FastAPI入门——路由、路径参数、查询参数与请求体
笔记·python·学习
铅笔侠_小龙虾9 小时前
Rust 学习目录
开发语言·学习·rust
我命由我123459 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑9 小时前
Sentinel安装
java·后端·微服务