集合基础知识及练习

news2024/11/24 20:30:58

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

    @Override
    public 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);
    }

    @Override
    public 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.coloradmin.cn/o/1983428.html

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

相关文章

【Python】Django Web 框架

一、常用的Web开发框架 1.Django Django是一个由Python写成的开放源代码的Web应用框架。这套框架的主要目标是使开发复杂、数据库驱动的网站变得简单。Django注重组件的重用性和“可拔插性”、敏捷开发和DRY(Dont Repeat Yourself)法则 2.Flask Flask是一个微型的Python开发…

音视频开发 sdl库

介绍 SDL (Simple DirectMedia Layer) 是一个跨平台的开源多媒体库,它提供了底层访问多种硬件的接口,如音频、视频、输入设备等。它主要用于游戏开发,但也可用于其他类型的多媒体应用程序。下面是 SDL 的一些主要特点: 跨平台性: SDL 支持多种操作系统,包括 Windows、macOS、L…

如何在linux系统上安装tomcat应用程序?

1&#xff09;首先查看安装包信息 yum info tomcat yum info tomcat 2&#xff09;安装 yum -y install tomcat yum -y install tomcat 3&#xff09;查看安装是否成功 rpm -q tomcat rpm -q tomcat 4&#xff09;如果输出一下内容则代表安装成功 tomcat-7.0.76-16.el7_9.n…

新手教学系列——Redis 实现分布式锁:让系统更高效的两种策略

在分布式系统中,分布式锁是一种常见的解决方案,用于确保同一资源不会被多个节点同时访问。Redis 作为一种高性能的内存数据库,提供了方便快捷的分布式锁实现方式。今天,我们将深入探讨如何使用 Redis 实现分布式锁,并且介绍两种常见的策略:占位锁和等待锁。 一、什么是分…

Linux源码阅读笔记13-进程通信组件中

架构图 代码分析 loff_t lnchannel_llseek(struct file *filp, loff_t offset, int whence) {loff_t newpos;switch(whence) {case 0:newpos offset;break;case 1:newpos filp->f_pos offset;break;case 2:return -EINVAL;}if (newpos < 0 || newpos > LNCHANNEL_…

剪映国际版(CapCut) 2024 下载 安装 汉化

将 剪映国际版&#xff08;CapCut&#xff09; 2024 压缩包解压到本地&#xff1a; 点击蓝色字体下载压缩包 提取码 jwsg 鼠标右键 点击 CapCut 3.0.0.exe 选择 以管理员身份运行&#xff1a; 勾选 Agree with CapCut Users License Agreement & Pricacy Policy 点击 Mor…

基于SSM的哈米音乐实战项目,Java课程设计作业,Java毕业设计项目,找工作前的实战项目,附部分源码以及数据库

1、项目所需技术 java基础&#xff0c;java反射&#xff0c;泛型html&#xff0c;css&#xff0c;JavaScript&#xff0c;jquery&#xff0c;bootstrap&#xff0c;layuijstl&#xff0c;el表达式&#xff0c;jsp&#xff0c;mysql&#xff0c;jdbc&#xff0c;xml&#xff0c…

HashMap及其相关知识点

一、HashMap插入与删除 通过将key转换为hashCode&#xff08;int&#xff09;&#xff0c;通过hashCode计算下标&#xff0c;int index hashCode & (length - 1)&#xff0c;从而实现插入与删除。 二、Hash冲突 Java8之前&#xff1a;通过数组链表的数据结构解决hash冲…

【Java数据结构】Map和Set超详细两万字讲解(内含搜索树+哈希表)

&#x1f512;文章目录&#xff1a; 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2. Map和Set的基础概念 3.Map的基础使用 4.Set的基础使用 5. TreeMap的本质——红黑树 5.1二叉搜索树的概念 5.2二叉搜索树的模拟实现 二叉搜索树——查找 二…

东莞网页设计结构图

东莞网页设计结构图是一个网页设计师在设计网站时使用的工具&#xff0c;用来展示网页的布局、内容结构和功能模块等信息。在设计一个网页时&#xff0c;网页设计师通常会首先制作一个网页设计结构图&#xff0c;以便更好地组织和规划网站的内容和功能。东莞网页设计结构图可以…

PFA的特点及焊接方法和应用领域

一、PFA特点&#xff1a; 1、外观半透明&#xff0c;易观察试剂情况&#xff1b; 2、耐高低温&#xff1a;-200&#xff5e;260℃&#xff1b; 3、耐腐蚀&#xff1a;耐强酸、强碱、王水、HF和各种有机溶剂&#xff1b; 4、防污染&#xff1a;本底值低&#xff0c;金属元素…

SpringBoot 整合 Spring Security 、JWT 实现认证、权限控制

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 Spring Security 和 JWT 实现认证、权限控制是一种在Web应用中保障安全的重要手段。 Spring Security是一个功能强大的身份验证和访问控制框架&#xff0c;它提供了完善的认证机制和方法级的授权功能。…

手机维修--学习笔记(一)

最近觉得手机主板维修比较有意思&#xff0c;观看许多师傅的维修视频&#xff0c;并做笔记如下&#xff1a; 手机主板维修&#xff1a; 【手机电路板怎么修&#xff0c;师傅对着电路图一步一步讲解&#xff0c;看完受益匪浅】https://www.bilibili.com/video/BV13A411v7wL?v…

梯度和反向传播

一.梯度 在机器学习的时候都了解过了&#xff0c;梯度是一个向量&#xff0c;导数变化最快的方向 损失函数&#xff1a; 通过梯度使损失降到最 用ywxb举例也就是使用梯度来更新w的值&#xff0c;ww-学习率*梯度。大于零就减小&#xff0c;反之增大 二.反向传播 就比如搭积木…

【源码+文档+调试讲解】古风生活体验交流网站

摘 要 二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一…

24/8/5算法笔记 逻辑回归sigmoid

今日是代码对sigmoid函数的实现和运用 #linear_model线性回归 #名字虽然叫逻辑回归&#xff0c;作用于分类 #分类&#xff1a;类别 #回归&#xff1a;预测 from sklearn.linear_model import LogisticRegression 实现函数 import numpy as np import matplotlib.pyplot as pl…

Linux笔记-3()

目录 一、Linuⅸ实操篇-定时任务调度 二、Linuⅸ实操篇-Linuⅸ磁盘分区、挂载 三、Linux实操篇-网络配置 一、Linuⅸ实操篇-定时任务调度 1 crond任务调度---crontab进行定时任务的设置1.1 概述任务调度&#xff1a;是指系统在某个时间执行的特定的命令或程序。任务调度分类…

【python】OpenCV—Image Colorization

文章目录 1、CIELAB 色彩空间2、作色问题定义3、Caffe 模型4、代码实现——Image5、代码实现——Video6、参考 1、CIELAB 色彩空间 Lab颜色空间&#xff0c;也称为Lab色彩空间或CIELAB色彩空间&#xff0c;是一种基于人类视觉感知特性的颜色模型。它是在1931年国际照明委员会&…

渗透SQL注入

首先打开php: Less-1: 打开浏览器输入网址&#xff0c;进入靶场&#xff1a; 输入?id1查询&#xff1a; 使用order by查询数据表的列数&#xff1a; http://127.0.0.1/sqllab/less-1/?id1 order by 4 -- ​ http://127.0.0.1/sqllab/less-1/?id1 order by 3 -- 由此可得表…

基于paddleocr实现验证码识别——训练数据

一、项目介绍 验证码&#xff08;CAPTCHA&#xff09;用于区分用户是人类还是计算机程序&#xff08;如机器人&#xff09;。这是为了防止各种形式的自动化攻击和滥用。以下是需要验证码识别的几个主要原因&#xff1a; 1. 防止恶意破解密码 攻击者可能会使用自动化程序进行…