集合基础知识及练习

java 复制代码
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);
        }
    }
}
java 复制代码
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);
        }

    }
}

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

java 复制代码
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());
        }

    }
}

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

java 复制代码
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;
    }
}

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

java 复制代码
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;

java 复制代码
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;

java 复制代码
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;

java 复制代码
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;

java 复制代码
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;
    }
java 复制代码
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中调用特有方法?*/

java 复制代码
    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;

java 复制代码
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,"肉");
    }
}
相关推荐
brrdg_sefg4 分钟前
gitlab代码推送
java
hanbarger27 分钟前
mybatis框架——缓存,分页
java·spring·mybatis
cdut_suye34 分钟前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
苹果醋31 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
azhou的代码园1 小时前
基于JAVA+SpringBoot+Vue的制造装备物联及生产管理ERP系统
java·spring boot·制造
大猫和小黄1 小时前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
wm10432 小时前
java web springboot
java·spring boot·后端
smile-yan2 小时前
Provides transitive vulnerable dependency maven 提示依赖存在漏洞问题的解决方法
java·maven
老马啸西风2 小时前
NLP 中文拼写检测纠正论文-01-介绍了SIGHAN 2015 包括任务描述,数据准备, 绩效指标和评估结果
java