爱吃苹果的日记本头像
java第十四课练习课1封面图

java第十四课练习课1

集合的一些应用

先定义一个Student类

import java.util.ArrayList;
public class TestList1 {
    public static void main(String[] args) {
        //将zs zy cly yjq zfy 存储到集合中
        //1.创建集合 对象(容器)
        ArrayList strs = new ArrayList();
        //2.往集合中添加元素(数据)
        strs.add("zs");//0
        strs.add("zy");//1
        strs.add("cly");//2
        strs.add("yjq");//3
        strs.add("zfy");//4
        strs.add("zfy");//5
        strs.add(1,"qj");//像插入,往后移动。数量改变
        strs.set(0,"lhh");//以新换旧,代替掉了,数量没变
        //3.集合中的元素进行操作
        System.out.println(strs.size());//获取集合中元素的个数
        System.out.println(strs.get(1));//获取指定下标的元素
        System.out.println(strs.get(2));//获取指定下标的元素
        System.out.println(strs.contains("zs"));//判断指定的内容在集合中是否存在
        //对集合进行历遍:对集合中的元素进行一一访问过程
        //利用循环控制 集合的下标
        for(int i=0;i<strs.size();i++){
            System.out.println(strs.get(i));//通过get获取下标对应的数据
        }
        //将集合中的 数据 小写->大写
        System.out.println("------------------");
        for(int i=0;i<strs.size();i++){
            String s=(String) strs.get(i);
            System.out.println(s.toUpperCase());

        }
    }
}

在Student类进行其他操作
操作1:

import java.util.ArrayList;
public class TestList1 {
    public static void main(String[] args) {
        //将zs zy cly yjq zfy 存储到集合中
        //1.创建集合 对象(容器)
        ArrayList strs = new ArrayList();
        //2.往集合中添加元素(数据)
        strs.add("zs");//0
        strs.add("zy");//1
        strs.add("cly");//2
        strs.add("yjq");//3
        strs.add("zfy");//4
        strs.add("zfy");//5
        strs.add(1,"qj");//像插入,往后移动。数量改变
        strs.set(0,"lhh");//以新换旧,代替掉了,数量没变
        //3.集合中的元素进行操作
        System.out.println(strs.size());//获取集合中元素的个数
        System.out.println(strs.get(1));//获取指定下标的元素
        System.out.println(strs.get(2));//获取指定下标的元素
        System.out.println(strs.contains("zs"));//判断指定的内容在集合中是否存在
        //对集合进行历遍:对集合中的元素进行一一访问过程
        //利用循环控制 集合的下标
        for(int i=0;i<strs.size();i++){
            System.out.println(strs.get(i));//通过get获取下标对应的数据
        }
        //将集合中的 数据 小写->大写
        System.out.println("------------------");
        for(int i=0;i<strs.size();i++){
            String s=(String) strs.get(i);
            System.out.println(s.toUpperCase());

        }
    }
}

操作2:

import java.util.ArrayList;
public class TestList2 {
    public static void main(String[] args) {
        //泛型集合:强制约束集合中的数据类型一致
        //ArrayList<String> ss = new ArrayList<String>();
        ArrayList<String> ss = new ArrayList<>();
        ss.add("zy");
        ss.add("zs");
        ss.add("zfy");
        //ss.add(123);放别的东西了,不想要,不允许
        for(int i=0;i< ss.size();i++){
            System.out.println(ss.get(i));
        }
        System.out.println("-----------小写->大写----------");
        for(int i=0;i< ss.size();i++){
            String s =ss.get(i);
            System.out.println(s.toUpperCase());
        }

    }
}

操作3:


import java.util.ArrayList;

public class TestList3{
    public static void main(String[] args) {
        //c创建多个学生对象进行存储管理
        //ArrayList stus = new ArrayList();
        ArrayList<Student> stus = new ArrayList<>();
        Student s1 = new Student("赵艳",18,99.0);
        Student s2 = new Student("小城",28,79.0);
        Student s3 = new Student("小样",25,89.0);

        stus.add(s1);
        stus.add(s2);
        stus.add(s3);
        stus.add(new Student("大红",26,76.0));

        for(int i=0;i< stus.size();i++){
            Student s=stus.get(i);
            System.out.println(s);
        }
        System.out.println("---------------forEach------------------");
        for(Student s : stus){
            System.out.println(s);

        }
        System.out.println("----------------计算集合中所有学生平均分数---------------");
        double sum =0.0 ;//累加器
        for(Student s :stus){
            sum+=s.getScore();
        }
        System.out.println("平均成绩"+sum/stus.size());
        System.out.println("-----------------打印输出 所有年龄大于20同时姓赵的同学信息--------------------");
        for(Student s : stus){
            //if(s.getName().startsWith("赵")){
            // if(s.getName().indexOf("赵")){
            if(s.getName().charAt(0) == '赵' && s.getAge()>20){
                System.out.println(s);

            }


        }


    }
}

——————————————————————————————————
定义一个Worker类


public class Worker {
    private String name;
    private int age;
    private double salary;

    public Worker() {
    }

    public Worker(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    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 double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Worker{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                '}';
    }
}

在Worker类上进行其他操作
操作:


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class TestWorker {
    public static void main(String[] args) {
        List<Worker> ws = new ArrayList<>();
        Worker w1 = new Worker("胡巴",48,1000.0);
        ws.add(w1);
        ws.add(new Worker("赵啦",25,20000.0));
        ws.add(new Worker("刘天",19,30000.0));
        ws.add(new Worker("刘胡胡",29,10000.0));
        for(Worker w : ws){
            System.out.println(w);
        }
        System.out.println("------平均工资:=-------");
        double sum =0.0;//累加器
        for (Worker w : ws){
            sum+=w.getSalary();

        }

        System.out.println("平均工资:"+sum/ws.size());
        System.out.println("-姓名包含\"胡\"的查询应正确-----------");
        for (Worker w:ws){
            if(w.getName().contains("胡")){
                System.out.println(w);

            }

        }
        System.out.println("(5)姓\"胡\"的查询应只韩慧以\"胡\"字开头的工人");
        for(Worker w:ws){
            if(w.getName().startsWith("胡")){
                System.out.println(w);


            }



        }
        System.out.println("-----------------------------");
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个员工的姓名");
        String name = sc.next();
        boolean found = false;//是否存在 此人
        for(Worker w :ws){
            if(w.getName().equals(name)){
                System.out.println(w);
                found =true;

            }

        }
        if(!found) System.out.println("查无此人!!!!!!");



    }
}

Set有关的应用
依旧是先定义一个Studebt类


import java.util.Objects;

public class Student {
   private String name;
   private Integer age;
   private Double score;

    public Student(String name, Integer age, Double score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Student)) return false;
        Student student = (Student) o;
        return Objects.equals(getName(), student.getName()) && Objects.equals(getAge(), student.getAge()) && Objects.equals(getScore(), student.getScore());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getName(), getAge(), getScore());
    }
}

对此Student类进行操作
操作1:


import java.util.HashSet;
import java.util.Set;

public class TestSet1 {
    public static void main(String[] args) {

        //存储对各字符串对象
        Set<String> s = new HashSet<>();
        String s1 ="hello";
        String s2 =new String("world");
        String s3 =new String("java");
        String s4 =new String("you");
        String s5 =new String("you");
        s.add(s1);
        s.add(s2);
        s.add(s3);
        s.add(s4);
        //s4和s5指向的是否为同一个对象?-不是,两个对象是否相等?--相同
        System.out.println(s4==s5);//判断两个对象是否指向同一个对象?   -false->不同的对象
        System.out.println(s4.equals(s5));//判断两个对象的内容是否一致?--true ->内存一样
        System.out.println("-------set:元素不允许");
        for(String result :s){
            System.out.println(result);

        }


    }
}

操作2:


import java.util.HashSet;
import java.util.Set;//在显示屏时,set是无序性的

public class TestSet2 {
    public static void main(String[] args) {
        Set<Student> stus= new HashSet<>();
        Student s1=new Student("赵大",25,99.0);
        Student s2=new Student("赵小",25,97.0);
        Student s3=new Student("于琪",27,87.0);
        Student s4=new Student("于琪",27,87.0);//按理来说,不能添加相同的,但是这时时可以显示的


        stus.add(s1);
        stus.add(s2);
        stus.add(s3);
        for(Student s : stus){
            System.out.println(s);
        }
    }


}

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/aaaghvhg/article/details/169168795

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--