案例LocalDate ,Map集合,split方法分割,集合、Random随机数、多态、封装

news2025/1/14 1:22:45

case1: 集合、Random随机数、多态、封装

ShootOddPeople类 

package com.zz.examine.case1;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 *
 */
public class ShootOddPerson {
    public static List<People> peoples = new ArrayList <>();
    public static void main(String args[]){
        //目标:完成幸存者案例
        /**
         * 1.由于每个囚犯是一个对象,
         * 并且我们需要每个囚犯的编号和 位置,
         * 所以我们需要将囚犯封装成对象.
         * 2.创建100个囚犯,依次站位,并为其赋值编号(1-200)的随机数,不能重复
         */
        //3.循环100次,创建100个囚犯,存入集合
        Random r = new Random();
        for(int i = 1;i <= 100; i++){
            while(true){
                int code = r.nextInt(200) + 1;
                //判断编号是否唯一
                if(exist(code)) {
                    People p = new People(code, i);
                    peoples.add(p);
                    break;//代表当前囚犯添加成功
                }
            }
        }
        System.out.println("囚犯站位" + peoples);

        //4.反复删除奇数位置处的人,知道剩余一个人为止
        //peoples = [p1,p2,p3,.....]
        while(peoples.size() > 1){
            //干掉奇数位置的人:逆向思维--留下偶数位置处的人
            List<People> tempPeoples = new ArrayList <>();
            for(int i = 1; i < peoples.size(); i+=2){
                People p = peoples.get(i);
                tempPeoples.add(p);
            }
            peoples = tempPeoples;
        }
        People luckPeople = peoples.get(0);
        System.out.println(luckPeople);
    }
    //判断编号是否存在
    public static boolean exist(int code){
        for(People people:peoples){
            if(people.getCode() == code)
                return false;//重复了,不能用
        }
        return true;
    }
}

 People类

package com.zz.examine.case1;

public class People {
    private int code;//编号
    private int location;//位置

    public People() {
    }

    public People(int code, int location) {
        this.code = code;
        this.location = location;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public int getLocation() {
        return location;
    }

    public void setLocation(int location) {
        this.location = location;
    }

    @Override
    public String toString() {
        return "People{" + "code=" + code + ", location=" + location + '}';
    }
}

case2:LocalDate ,Map集合,split方法分割,

Test类 

package com.zz.examine.case2;

import com.sun.javafx.image.IntPixelGetter;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
    public static void main(String args[]){
        //1.把数据拿到程序中
        String userStrs = "1001:张三:男:1998-02-23#1002:李四:女:1849-12-12#1003:王五:男:2000-12-12#1003:张三:女:2010-12-12";
        //2.定义一个用户类
        //3.提前定义一个List<User>集合用于存储用户集合
        List<User> users = new ArrayList <>();
        //4.把全部用户数据,用#分割
        String[] userStrArray = userStrs.split("#");
        for (String userStr : userStrArray) {
            //userStr = "1001:张三:男:1998-02-23"
            //5.创建一个用户对象,封装这个用户数据
            User user = new User();
            String[] userInfo = userStr.split(":");
            user.setId(Long.valueOf(userInfo[0]));
            user.setName(userInfo[1]);
            user.setGender(userInfo[2]);
            user.setBirthday(LocalDate.parse(userInfo[3]));
            //6.把这个用户存入到集合总
            users.add(user);
        }
        System.out.println(users);

        System.out.println("============业务二===========");
        //7.遍历List集合中的用户对象,统计相同名称出现的次数
        Map<String, Integer> result = new HashMap <>();
        for (User user : users) {
            String name = user.getName();
            if(result.containsKey(name)){
                result.put(name, result.get(name) + 1);
            }else{
                result.put(name, 1);
            }
        }
        //8.遍历Map集合
        result.forEach((k,v)->{
            System.out.println(k + ":" + v + "次");
        });
    }
}

User类 

package com.zz.examine.case2;

import java.time.LocalDate;

public class User {
    private Long id;
    private String name;
    private String gender;//性别
    private LocalDate birthday;//生日

    public User() {
    }

    public User(Long id, String name, String gender, LocalDate birthday) {
        this.id = id;
        this.gender = gender;
        this.birthday = birthday;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public LocalDate getBirthday() {
        return birthday;
    }

    public void setBirthday(LocalDate birthday) {
        this.birthday = birthday;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" + "id=" + id + ", name='" + name + '\'' + ", gender='" + gender + '\'' + ", birthday=" + birthday + '}';
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1513930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的零售柜商品检测软件(Python+PySide6界面+训练代码)

摘要&#xff1a;开发高效的零售柜商品识别系统对于智能零售领域的进步至关重要。本文深入介绍了如何运用深度学习技术开发此类系统&#xff0c;并分享了全套实现代码。系统采用了领先的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5进行了性能比较&#xff0c;呈现了诸如…

CTP-API开发系列之九:行情登录及订阅代码

CTP-API开发系列之九&#xff1a;行情登录及订阅代码 前情回顾全局配置参数行情初始化代码行情登录行情订阅行情接收注意事项 前情回顾 CTP-API开发系列之一&#xff1a;各版本更新说明&#xff08;持续更新&#xff09; CTP-API开发系列之二&#xff1a;问题汇总&#xff08;…

ONLYOFFICE 文档开发者版,为您的平台带来强大的文档编辑功能

你是否在寻找一个可自主部署、可定制、易集成的文档编辑器解决方案&#xff1f;如果是这样&#xff0c;那么ONLYOFFICE 文档开发者版&#xff0c;也许就是你想要的答案。下面让我们一起来看看它有哪些特点&#xff0c;并能为您带来哪些好处。 什么是 ONLYOFFICE 文档 ONLYOFFI…

06-kafka及异步通知文章上下架-黑马头条

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高&#xff08;主从&#xff09;高&#xff08;主从&#…

OpenMP 编程模型

OpenMP 内存模型 共享内存模型&#xff1a; OpenMP 专为多处理器/核心、共享内存机器设计&#xff0c;底层架构可以是共享内存UMA或NUM OpenMP 执行模型 基于线程的并行&#xff1a; OpenMP 程序基于多线程来实现并行&#xff0c; 线程是操作系统可以调度的最小执行单元。 …

【C++】string进一步介绍

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. 迭代器2.1 反向迭代器2.2 const对象迭代器 3. Capacity3.1 size和length3.2 max_size3.3 capacity3.4 clear3.5 shrink_to_fit &#xff08;了解即可&#xff09;3.6 reserve3.7 resize 4. Element access4…

Orange3数据预处理(离散化组件)

离散化&#xff1a;将数值属性转换为分类属性。 输出 数据&#xff1a;具有离散化值的数据集 设置离散化的默认方法。 选择变量以为每个变量设置特定的离散化方法。将鼠标悬停在变量上显示区间。 离散化方法Keep numeric(保持数值)&#xff1a;保持变量不变。Remove (移除)&a…

【强化学习抓取】偏机器人领域(略)

文章目录 1. A Grasp Pose is All You Need: Learning Multi-fingered Grasping with Deep Reinforcement Learning from Vision and Touch摘要和结论引言相关工作模型框架 1. A Grasp Pose is All You Need: Learning Multi-fingered Grasping with Deep Reinforcement Learni…

2024年GitHub标星2-9K的Android基础——高级面试题合集

3、横竖屏切换时候 Activity 的生命周期 4、AsyncTask 的缺陷和问题&#xff0c;说说他的原理。 5、onSaveInstanceState() 与 onRestoreIntanceState() Android高级面试题 1、你们做了哪些稳定性方面的优化&#xff1f; 2、性能稳定性是怎么做的&#xff1f; 3、业务稳定性如…

计算机如何处理异常

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;这篇文章主要计算机究竟是如何处理异常的&#xff0c;异常可以分成中断、陷阱、故障、中止这样四种情况。这四种异常&#xff0c;分别对应着 I/O 设备的输入、程序主动触发的状态切换、异常情况下的程序出错以及出错之后无可…

新手做抖音小店怎么能做起来吗?手把手教你,从零到做好只需3步

大家好&#xff0c;我是电商花花。 做抖音小店的新手卖家都会把月入过万作为做抖音小店的目标&#xff0c;在没有接触抖音小店之前都羡慕别人的店铺能够够稳定出单&#xff0c;月入过万&#xff0c;甚至更多。 可当自己在操作店铺的时候&#xff0c;要么就是没有流量&#xf…

CVE-2024-2074 SpringBoot迷你天猫商城Mini-Tmall sql注入漏洞分析

漏洞简介 Mini-Tmall是一个基于Spring Boot的迷你天猫商城。Mini-Tmall在20231017版本及之前存在一个严重的漏洞&#xff0c;攻击者可以利用该漏洞通过远程执行特定操作来注入恶意SQL语句&#xff0c;从而获取敏感信息或控制数据库。此漏洞影响文件?rtmall/admin/user/1/1的一…

C语言例2-2:从键盘输入两个整数,计算其乘积(利用用户自定义函数实现)

代码如下&#xff1a; //从键盘输入两个整数&#xff0c;计算其乘积&#xff08;利用用户自定义函数实现&#xff09;。 #include<stdio.h> int mul(int a, int b) //定义一个函数mul {int c; //定义一个整型…

深克隆和浅克隆有什么区别?

1、典型回答 克隆是指创建一个对象的副本&#xff0c;使副本具有与原始对象相同的属性和状态。在计算机编程中&#xff0c;克隆是一种常见的操作&#xff0c;用于复制数据、对象或数据结构&#xff0c;以便在不影响原始数据的情况下进行操作、修改或分发。 克降最典型的使用场…

Linux -- 线程互斥

一 线程互斥的概念 大部分情况&#xff0c;线程使用的数据都是局部变量&#xff0c;变量的地址空间在线程栈空间内&#xff0c;这种情况&#xff0c;变量归属单个线程&#xff0c;其他线程无法获得这种变量。但有时候&#xff0c;很多变量都需要在线程间共享&#xff0c;这样的…

【网络原理】TCP三次握手四次挥手

文章目录 &#x1f332;三次握手四次挥手总览&#x1f340;三次握手&#xff08;建立连接&#xff09;&#x1f338;为什么需要第三次通信 &#xff1f; &#x1f384;四次挥手&#xff08;断开连接&#xff09;&#x1f338;四次挥手中涉及到的两个重要的状态 ⭕总结 &#x1…

nginx学习记录-nginx初步配置

1. 虚拟机安装系统并配置网络 系统网上找个能用的镜像就行&#xff0c;我用的是阿里的镜像&#xff0c;地址是centos安装包下载_开源镜像站-阿里云 (aliyun.com) 以下是我本地的虚拟机配置 配置过程中按照提示操作系统即可。 安装好系统后&#xff0c;配置centos的ip&#x…

C++进阶之路---我们在何种情况下使用set和map

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 前言 在之前的学习中&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、for…

【多智能体强化学习02---训练范式+独立学习+多智能体策略梯度算法】

文章目录 多智能体强化学习训练和执行范式CTCEDTDECTDE MARL符号表示分布式学习&#xff08;Independent Learning)基于值函数的分布式学习&#xff08;Independent value-based learning)基于策略梯度的分布式学习&#xff08;Independent policy gradient learning) 多智能体…

力扣:数组篇

1、数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 需要两点注意的是 数组下标都是从0开始的。数组内存空间的地址是连续的 因为数组的在内存空间的地址是连续的&#xff0c;所以我们在删除或者增添元素的时候&#xff0c;就难免要移动其他元素的地址。 …