zoukankan      html  css  js  c++  java
  • JAVA基础13

    任务要求:

    1.建立一个企鹅类,企鹅有名字(可以自由添加属性)
    2.把多个企鹅的信息添加到集合中
    3.查看企鹅的数量
    4.遍历输出所有企鹅的信息
    5.删除集合中索引值是2的企鹅的元素

    package Demo4;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Penguin {
        private String name;
        public Penguin(String name) {
            super();
            this.name = name;
        }
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return name;
        }
    }
    class Test1 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            List<Penguin> list = new ArrayList<>();
            Penguin p1 = new Penguin("盼盼");
            Penguin p2 = new Penguin("欢欢");
            Penguin p3 = new Penguin("迎迎");
            list.add(p1);
            list.add(p2);
            list.add(p3);
            System.out.println(list.size());
            list.forEach(System.out::println);
            System.out.println(list.remove(2));
        }
    }


    任务描述:

    定义一个老鼠类,该类有属性名字,爱好,年龄。创建老鼠对象,并初始化,然后把这些老鼠对象添加到一个集合中。
    任务要求
    1.使用集合添加2只老鼠,:淘淘和杰瑞
    2.按照年龄升序排序;(比较器Comparable)
    3.再添加一只杰瑞老鼠,不允许此老鼠添加入集合,因为在老鼠王国不允许同名的老鼠,老鼠名相同了会被认为是同一只老鼠。(重写hashCode和equals)
    4.使用Iterator显示所有老鼠信息;
    5.删除老鼠杰瑞
    6.输出集合中有多少只老鼠

    package Demo4;
    
    import java.util.LinkedHashSet;
    import java.util.Set;
    
    public class Mouse implements Comparable<Mouse>{
        private String name;
        private String hobby;
        private int age;
        public Mouse(String name, String hobby, int age) {
            super();
            this.name = name;
            this.hobby = hobby;
            this.age = age;
        }
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return name+","+hobby+","+age;
        }
        @Override
        public int compareTo(Mouse o) {
            // TODO Auto-generated method stub
            return this.age - o.age;
        }
        @Override
        public int hashCode() {
            // TODO Auto-generated method stub
            return name.hashCode();
        }
        @Override
        public boolean equals(Object obj) {
            // TODO Auto-generated method stub
            return this.name .equals(((Mouse)obj).name)?true:false ;
        }
    }
    class Test2 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Set<Mouse> set = new LinkedHashSet<>();
            Mouse taotao = new Mouse("淘淘", "吃米", 1);
            Mouse jerry  = new Mouse("杰瑞", "吃蛋糕", 2);
            set.add(taotao);
            set.add(jerry);
            set.forEach(System.out::println);
            set.add(jerry);
            set.forEach(System.out::println);
            set.remove(jerry);
            System.out.println(set.size());
        }
    }


    练习一
    1.定义一个长度为10的int数组,并存入10个int类型的数据,其中有一些数据是重复的。
    2.利用集合的知识对数组进行去重,产生新数组,数组中原来数字的大小顺序不能改变。
    3.打印新数组中的内容。

    package Demo4;
    
    import java.util.ArrayList;
    
    public class Demo1 {
        public static void main(String[] args) {
            // 定义一个长度为10的int数组,并存入10个int类型的数据,其中有一些数据是重复的
            int[] arr = { 5, 7, 8, 4, 5, 6, 3, 4, 8, 7 };
    
            // 利用集合的知识对数组进行去重,产生新数组,不能改变数组中原来数字的大小顺序
    
            // 创建集合对象
            ArrayList<Integer> array = new ArrayList<Integer>();
            // 遍历数组
            for (int in : arr) {
                // 判断集合中是否包含指定元素
                if (!array.contains(in)) {
                    array.add(in);
                }
            }
            // 定义新数组
            int[] newArr = new int[array.size()];
    
            //定义新集合的索引
            int index = 0;
            for (int in : array){
                newArr[index++] = in;
            }
    
            for(int i = 0;i < newArr.length;i++){
                System.out.println(newArr[i]);
            }
        }
    }

    练习二
    键盘读取一行字符串,去掉其中重复字符, 打印去重后的字符串。
    分析:
    方法一:使用 List集合 中的ArrayList集合【去重--添加】
    方法二:使用 Set集合 中的HashSet集合【直接添加,Set特点无序不重复

    package Demo4;
    
    import java.util.HashSet;
    import java.util.Scanner;
    
    public class Demo2 {
        public static void main(String[] args) {
            // 创建Scanner对象
            Scanner sc = new Scanner(System.in);
            // 提示用户输入
            System.out.println("请输入一行字符串:");
            // 创建HashSet对象
            HashSet<Character> hs = new HashSet<>();
            // 将输入的一整行字符串转换为字符数组
            String line = sc.nextLine();
            char[] charArr = line.toCharArray();
            // 将数组中的所有字符都存储在HashSet集合中,在添加的过程中,HashSet会自动去重
            for (char c : charArr) {// Character c也可以 - 自动装箱
                hs.add(c);
            }
            // 遍历HashSet集合,打印每一个字符
            for (Character c : hs) {// char c也可以 - 自动拆箱
                System.out.println(c);
            }
        }
    }


    练习三
    有如下Student 对象,
     private String name;
    private int age;
    private int score;
    private String classNum;
    其中,classNum 表示学生的班号,例如“class05”。 有如下List List list = new ArrayList();

    list.add(new Student(“Tom”, 18, 100, “class05”));

    list.add(new Student(“Jerry”, 22, 70, “class04”));

    list.add(new Student(“Owen”, 25, 90, “class05”));

    list.add(new Student(“Jim”, 30,80 , “class05”));

    list.add(new Student(“Steve”, 28, 66, “class06”));

    list.add(new Student(“Kevin”, 24, 100, “class04”));

    在这个list 的基础上,完成下列要求:

    1) 计算所有学生的平均年龄

    2) 计算各个班级的平均分

    package Demo5;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Test {
        public static void main(String[] args) {
            List<Student> list = new ArrayList<>();
            list.add(new Student("Tom", 18, 100,"class05"));
    
            list.add(new Student("Jerry", 22, 70, "class04"));
    
            list.add(new Student("Owen", 25, 90, "class05"));
    
            list.add(new Student("Jim", 30,80 , "class05"));
    
            list.add(new Student("Steve", 28, 66, "class06"));
    
            list.add(new Student("Kevin", 24, 100, "class04"));
            int avg = 0;
            int sorcoAvg = 0;
            for (Student i:list
                 ) {
                avg+=i.getAge();
                sorcoAvg += i.getScore();
            }
            System.out.println("所有学生的平均年龄:"+avg/list.size());
            System.out.println("各个班级的平均成绩为:"+sorcoAvg/list.size());
        }
    }
  • 相关阅读:
    Python环境管理(虚拟环境)/包管理工具
    Java面试题集锦
    python跟踪脚本运行过程(类似bash shell -x)
    【ClickHouse问题】更新表字段类型为Nullable(Int32)的列值,最终结果都是固定一个值:93147008???
    【ClickHouse】0:clickhouse学习4之表相关操作
    【ClickHouse】0:clickhouse学习3之时间日期函数
    【ClickHouse】0:clickhouse学习2之数据类型
    【ClickHouse】0:clickhouse学习1之数据引擎(数据库引擎,表引擎)
    【ClickHouse】7:clickhouse多实例安装
    【ClickHouse】6:clickhouse集群高可用
  • 原文地址:https://www.cnblogs.com/coder-ahao/p/13893773.html
Copyright © 2011-2022 走看看