集合基础知识及练习

import java.util.ArrayList;public class Solution {//将字符串转化为整数public static void main(String[] args) {ArrayList<String> list=new ArrayList();list.add("aaa");list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");list.add("eee");String result=list.set(3,"aaa");System.out.println(result);//返回被修改的元素for (int i = 0; i < list.size(); i++) {String str=list.get(i);System.out.println(str);}}
}

import java.util.ArrayList;public class Solution {//将字符串转化为整数public static void main(String[] args) {//1.创建集合ArrayList<Student> list=new ArrayList<>();//2.创建学生对象Student s1=new Student("lajfl",2);Student s2=new Student("fsda",4);//3.添加元素list.add(s1);list.add(s2);//4.循环遍历for (int i = 0; i < list.size(); i++) {Student st=list.get(i);System.out.println(st);}}
}

是自己写的,并没有进行一些特殊的处理,所以直接打印时会打印首地址

import java.util.ArrayList;public class Solution {//将字符串转化为整数public static void main(String[] args) {//1.创建集合ArrayList<Student> list=new ArrayList<>();//2.创建学生对象Student s1=new Student("lajfl",2);Student s2=new Student("fsda",4);//3.添加元素list.add(s1);list.add(s2);//4.循环遍历for (int i = 0; i < list.size(); i++) {Student st=list.get(i);System.out.println(st.getAge()+""+st.getName());}}
}

添加用户对象,并判断是否存在

import java.util.ArrayList;public class Javabean {public static void main(String[] args) {
ArrayList<Phone> list=new ArrayList<>();Phone p1=new Phone("1a","12345a","jf");Phone p2=new Phone("1b","2345a","lajf");Phone p3=new Phone("1c","345a","jlf");list.add(p1);list.add(p2);list.add(p3);int result=User(list,"1c");System.out.println(result);}//调用方法根据id查找对应的用户信息public static int User(ArrayList<Phone> list,String id){for (int i = 0; i < list.size(); i++) {String id1 =list.get(i).getId();if(id1==id){return i;}}return -1;}
}

添加手机对象,并返回要求的数据

import java.util.ArrayList;public class Javabean {public static void main(String[] args) {//1.创建一个集合ArrayList<Phone> list=new ArrayList<>();//2.创建对象Phone p1=new Phone("小米",1000);Phone p2=new Phone("苹果",8000);Phone p3=new Phone("锤子",2900);
//3.添加对象list.add(p1);list.add(p2);list.add(p3);
ArrayList<Phone> lowlist=judge(list);for (int i = 0; i < lowlist.size(); i++) {Phone phone1=lowlist.get(i);System.out.println(phone1.getBrand()+" "+ phone1.getPrice());}}//方法:将《3000的手机返回public static ArrayList<Phone> judge(ArrayList<Phone> list){ArrayList<Phone> lowlist=new ArrayList<>();for (int i = 0; i < list.size(); i++) {Phone phone=list.get(i);int price1=phone.getPrice();if(price1<3000){lowlist.add(phone);}}return lowlist;}

关键点:怎么返回多个对象?

可以创建一个集合储存要返回的元素

后返回这个集合

多态练习


    行为:eat

    属性:年龄,颜色

1.定义狗类
    属性:年龄,颜色

    行为:eat(String something)(something表示吃的东西)
    看家lookHome方法(无参数)

2.定义猫类
    属性:年龄,颜色

    行为:
    eat(String something)方法(something表示吃的东西)
    逮老鼠catchMouse方法(无参数)

3.定义Person类//饲养员
    属性:姓名,年龄

    行为:keepPet(Dog dog,String something)方法
    功能:喂养宠物狗,something表示喂养的东西

    行为:keepPet(Cat cat,String something)方法
    功能:喂养宠物猫,something表示喂养的东西
            生成空参有参构造,set和get方法

4.定义测试类(完成以下打印效果):
    keepPet(Dog dog,String somethind)方法打印内容如下:
    年龄为30岁的老王养了一只黑颜色的2岁的狗
2岁的黑颜色的狗两只前腿死死的抱住骨头猛吃
    keepPet(Cat cat,String somethind)方法打印内容如下:
    年龄为25岁的老李养了一只灰颜色的3岁的猫
3岁的灰颜色的猫眯着眼睛侧着头吃鱼

5.思考:1.Dog和Cat都是Animal的子类,以上案例中针对不同的动物,定义了不同的keepPet方法,过于繁琐,能否简化,并体会简化后的好处?
            2.Dog和Cat虽然都是Animal的子类,但是都有其特有方法,能否想办法在keepPet中调用特有方法?

Package src 

class animals;

public class Animals {private String color;private int age;public Animals(String color, int age) {this.color = color;this.age = age;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void eat(String something){System.out.println("小动物吃"+something);}
}

Package src 

class Cat;

public class Cat  extends Animals{public Cat(String color, int age) {super(color, age);}@Overridepublic void eat(String something) {System.out.println(getAge()+"岁的"+getColor()+"的猫眯着眼睛侧着头吃"+something);}public void catchMouse(){System.out.println("捉老鼠");}
}

Package src 

class Cat;

public class Dog extends Animals{public Dog(String color, int age) {super(color, age);}@Overridepublic void eat(String something) {System.out.println(getAge()+"岁的"+getColor()+"颜色的狗两只前腿死死的抱住"+something+"猛吃");}
}

Package src 

class Cat;

public class Person {/*定义Person类//饲养员属性:姓名,年龄行为:keepPet(Dog dog,String something)方法功能:喂养宠物狗,something表示喂养的东西行为:keepPet(Cat cat,String something)方法功能:喂养宠物猫,something表示喂养的东西生成空参有参构造,set和get方法*/private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}

public void keepPet(Dog dog, String something){System.out.println("年龄为"+getAge()+"岁的"+getName()+"养了一只"+dog.getColor()+"颜色的"+dog.getAge()+"的猫");dog.eat(something);}public void keepPet(Cat cat,String something){System.out.println("年龄为"+getAge()+"岁的"+getName()+"养了一只"+cat.getColor()+"颜色的"+cat.getAge()+"岁的猫");cat.eat(something);}

优化:

思考:1.Dog和Cat都是Animal的子类,以上案例中针对不同的动物,定义了不同的keepPet方法,过于繁琐,能否简化,并体会简化后的好处?
            2.Dog和Cat虽然都是Animal的子类,但是都有其特有方法,能否想办法在keepPet中调用特有方法?*/

    public void keepPet(Animals animal,String something){if(animal instanceof Dog d){System.out.println("年龄为"+getAge()+"岁的"+getName()+"养了一只"+animal.getColor()+"颜色的"+animal.getAge()+"岁的猫");d.eat(something);}else if(animal instanceof Cat c){System.out.println("年龄为"+getAge()+"岁的"+getName()+"养了一只"+animal.getColor()+"颜色的"+animal.getAge()+"岁的狗");c.eat(something);}else{System.out.println("没有此动物");}}

Package src 

class Cat;

public class Test {public static void main(String[] args) {
Person p=new Person("老王",78);
Cat c=new Cat("blue",2);
p.keepPet(c,"胡萝卜");Person p1=new Person("老李",12);
Dog dog=new Dog("white",15);
p.keepPet(dog,"肉");}
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Occlusion in Augmented Reality

1.Occlusion in Augmented Reality 笔记来源&#xff1a; 1.Occlusion handling in Augmented Reality context 2.Occlusion in Augmented Reality 3.Real-Time Occlusion Handling in Augmented Reality Based on an Object Tracking Approach 4.Occlusion Matting: Realisti…

JavaWeb——CSS的使用

CSS 层叠样式表(英文全称:(cascading stle sheets)能够对网页中元素位置的排版进行像素级精确控制&#xff0c;支持几乎所有的字体字号样式&#xff0c;拥有对网页对象和模型样式编辑的能力,简单来说,CSS用来美化页面 一、CSS的引入方式: 1.行内式&#xff1a;通过元素开始标…

未授权访问漏洞系列

环境 1.此漏洞需要靶场vulhub&#xff0c;可自行前往gethub下载 2.需要虚拟机或云服务器等linux系统&#xff0c;并在此系统安装docker和docker-compose提供环境支持 3.运行docker-compose指令为docker-compose up -d即可运行当前目录下的文件 Redis未授权访问漏洞 一、进…

用于相位解包的卷积和空间四向 LSTM 联合网络

原文&#xff1a;A Joint Convolutional and Spatial Quad-Directional LSTM Network for Phase Unwrapping 作者&#xff1a;Malsha V. Perera 和 Ashwin De Silva 摘要&#xff1a; 相位展开是一个经典的病态问题&#xff0c;其目标是从包裹相位中恢复真实的相位。本文&…

RAG前沿技术/解决方案梳理

RAG前沿技术/解决方案梳理 BenchmarkRetrievalAdaptive-RAGDR-RAGRichRAGGenRT Critique/ReasoningSelf-RAGCorrective RAGSpeculative RAGPlanRAGSelf-ReasoningReSP MemorySelfmemHippoRAG Query RewriteRaFe SummaryRefiner 个人理解 对当前RAG的学术研究&#xff08;或者好…

SAP 接口PO(PI,XI)在ECC端日志记录及显示

在接口的处理中通常会需要记录日志&#xff0c;而如果是与PO(PI,XI)做的接口的话&#xff0c;可以使用事务码SXI_MONITOR – XI&#xff1a;消息监控&#xff0c;来查询日志&#xff0c;但对于一些有加密&#xff0c;或者在业务接口功能上想直接查询报文日志时&#xff0c;会在…

使用 MinIO、Langchain 和 Ray Data 构建分布式嵌入式子系统

嵌入子系统是实现检索增强生成所需的四个子系统之一。它将您的自定义语料库转换为可以搜索语义含义的向量数据库。其他子系统是用于创建自定义语料库的数据管道&#xff0c;用于查询向量数据库以向用户查询添加更多上下文的检索器&#xff0c;最后是托管大型语言模型 &#xff…

ES6中的Promise、async、await,超详细讲解!

Promise是es6引入的异步编程新解决方案&#xff0c;Promise实例和原型上有reject、resolve、all、then、catch、finally等多个方法&#xff0c;语法上promise就是一个构造函数&#xff0c;用来封装异步操作并可以获取其成功或失败的结果&#xff0c;本篇文章主要介绍了ES6中的P…

(免费领源码)java#SSM#MYSQL私家车位共享APP 51842-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1 课题的研究背景 1.2研究内容与研究目标 1.3ssm框架 1.4论文结构与章节安排 2 2 私家车位共享APP系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1功能性分析 2…

原型图绘制技巧

针对于 Axure RP绘图软件。 1、拉辅助线 目的&#xff0c;确定画布大小尺寸从上面和左面的刻度尺上&#xff0c;点击鼠标&#xff0c;拖动&#xff0c;就可以拉出一条线。 2、画布底模设为组件 右键转换为母版&#xff0c;方便后续其他页面使用 3、按钮 按钮字体不要太大&am…

【嵌入式】STM3212864点阵屏使用SimpleGUI单色屏接口库——(2)精简字库

一 开源库简介与移植 最近一个项目需要用12864屏幕呈现一组较为复杂的菜单界面&#xff0c;本着不重复造轮子的原则找到了SimpleGUI开源库。 开源地址&#xff1a;SimpleGUI: 一个面向单色显示屏的开源GUI接口库。 SimpleGUI是一款针对单色显示屏设计的接口库。相比于传统的GUI…

SpringBoot集成阿里百炼大模型(初始demo) 原子的学习日记Day01

文章目录 概要下一章SpringBoot集成阿里百炼大模型&#xff08;多轮对话&#xff09; 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1&#xff0c;选择大模型以及获取自己的api-key&#xff08;前面还有一步开通服务就没有展示啦&#xff01;&#xff09;2&#xff0c…

CSS学习 02 利用鼠标悬停制造按钮边框的渐变方向变化

效果 页面背景为深灰色&#xff0c;使用Karla字体。容器内的按钮居中显示&#xff0c;按钮有一个彩色渐变的边框。按钮的背景为黑色&#xff0c;文字为浅灰色。当鼠标悬停在按钮边框上时&#xff0c;边框的渐变方向变化&#xff0c;按钮文字变为白色&#xff0c;并且按钮内边距…

简单猜谜小程序开发

了解小程序的结构 项目根目录 包含小程序的配置文件和其他资源。 页面目录 每个页面都有独立的目录&#xff0c;通常包含 .json、.wxml、.wxss、.js 文件&#xff1a; .json&#xff1a;页面配置文件&#xff0c;用于配置页面的窗口表现等。 .wxml&#xff1a;页面的布局文件…

JS等待所有方法执行完成在执行下一个方法,promise All

在工作中会遇到这样一个场景&#xff0c;前端需要拿到不同接口返回的结果在执行某个逻辑&#xff0c;当使用链式那样的方式去请求&#xff0c;等一个接口响应完在请求下一个接口&#xff0c;这种方法就会导致请求时间特别长。这个时候就可以使用promise all&#xff0c;同时请求…

Python酷库之旅-第三方库Pandas(067)

目录 一、用法精讲 266、pandas.Series.dt.second属性 266-1、语法 266-2、参数 266-3、功能 266-4、返回值 266-5、说明 266-6、用法 266-6-1、数据准备 266-6-2、代码示例 266-6-3、结果输出 267、pandas.Series.dt.microsecond属性 267-1、语法 267-2、参数 …

IDEA如何去掉编辑框右侧的竖线

打开 IntelliJ Idea 软件 依次找到 File—>Settings—>Editor—>General—>Appearance 去掉勾选 Show hard wrap and visual guides (configured in Code Style options)

PHP海报在线制作系统小程序源码

创意无限&#xff0c;设计零门槛&#xff01; &#x1f3a8; 一键解锁设计大师潜能 你还在为找不到合适的设计师制作海报而烦恼吗&#xff1f;告别繁琐沟通&#xff0c;拥抱“海报在线制作系统”&#xff01;这个神奇的平台&#xff0c;让你无需任何设计基础&#xff0c;也能…

后台弱口令部署war包 漏洞复现

1.搭建好环境打开页面---点击右方的manager app 默认账号密码为tomcat 2.登录完成后滑到下面点击浏览 3.将你生成的jsp木马压缩为zip格式并将后缀名改为war 4.提交此war压缩包然后在目录中点击 5.点击完后在后面加lkj.jsp&#xff0c;访问成功证明注入成功 5.打开哥斯拉连接…

js获取近30天近60天时间区间

1.从今天往前推30天 handleSetTime(value) {//value传入自定义时间 30/60/90//因为这里要加上今天时间,所以开始时间-1const value1 value - 1const date new Date()const startTimestamp date.getTime() - value1 * (24 * 60 * 60 * 1000 * 1)const sDate new Date(startTi…