Java之经典Student问题2

创建5个学生对象给一个学生数组赋值,每个学生属性有:学号、姓名、年龄。

要求:1.给每个学生排序输出。  2.给所有学生年龄加1。  3.统计年龄大于20的学生人数。

在这里,我们用了compareTo方法,其实compareTo就是用来比较两个值,如果前者大于后者,返回1,等于返回0,小于返回-1

package com.cdp.student;

public class student {
    // 属性
    private String name;
    private String number;
    private int age;
    // 构造方法
    public student() {
    }
    // 带参数的构造方法
    public student(String number, String name, int age) {
        this.age = age;
        this.name = name;
        this.number = number;
    }
    public static void main(String[] args) {
        // 统计学生人数
        int count = 0;
        // 定义一个学生数组
        student[] s = new student[5];
        // 给每个学生赋值
        s[0] = new student("学号234", "小三", 18);
        s[1] = new student("学号123", "小四", 21);
        s[2] = new student("学号456", "小五", 20);
        s[3] = new student("学号879", "小六", 22);
        s[4] = new student("学号785", "小七", 18);
        // 按学号排序
        for (int i = 0; i < s.length - 1; i++) {
            for (int j = i + 1; j < s.length; j++) {
                if (s[i].number.compareTo(s[j].number) > 0) {
                    // 此时i和j位置上的 元素互换
                    student temp = new student();
                    temp = s[i];
                    s[i] = s[j];
                    s[j] = temp;
                }
            }
        }

        for (int i = 0; i < s.length; i++) {
            System.out.println("学生排序为:" + s[i].number + "  姓名:" + s[i].name
                    + "     年龄:" + s[i].age);
        }
        // 给所有学生年龄加1
        for (int i = 0; i < 5; i++) {
            s[i].age = s[i].age + 1;
            System.out.println("所有学生年龄加1:" + s[i].number + "  姓名:" + s[i].name
                    + "     年龄:" + s[i].age);
        }
        // 统计大于20岁的学生
        for (int i = 0; i < 5; i++) {
            if (s[i].age > 20) {
                count++;
            }
        }
        System.out.println("年龄大于20的学生人数为:" + count);
    }
}

运行结果:

学生排序为:学号123  姓名:小四     年龄:21
学生排序为:学号234  姓名:小三     年龄:18
学生排序为:学号456  姓名:小五     年龄:20
学生排序为:学号785  姓名:小七     年龄:18
学生排序为:学号879  姓名:小六     年龄:22
所有学生年龄加1:学号123  姓名:小四     年龄:22
所有学生年龄加1:学号234  姓名:小三     年龄:19
所有学生年龄加1:学号456  姓名:小五     年龄:21
所有学生年龄加1:学号785  姓名:小七     年龄:19
所有学生年龄加1:学号879  姓名:小六     年龄:23
年龄大于20的学生人数为:3
时间: 2024-11-12 14:35:58

Java之经典Student问题2的相关文章

java多线程经典案例

/** * 典型案例:子线程执行10次,主线程执行100次,两者交替50次. */ package cn.itcast.lesson4; public class TestWaitNotify { public static void main(String[] args){ final Business business= new Business(); new Thread( new Runnable() { public void run() { for(int i=1;i<=50;i++

java框架——经典的Hibernate

在编程开发中,我们有很多框架,他们有些很方便,也很实用,今天我们一起来认识一个java经典的框架Hibernate,Hibernate英文名称为"冬眠",这是个很有意思的技术,同样这个名字也很巧妙!大家先看看这个技术的书籍在国外的封面: 简介: 大家知道冬眠的动物是静止的,在冻僵的边缘,而Hibernate的一个巨大作用就是对数据持久化的实现,这两者有什么联系? 简单介绍数据持久化: 数据持久化是解决程序与数据库之间交互访问的问题,使程序不直接访问数据库,而是直接访问Session会话

java io经典代码

package IO; import java.io.*; public class FileDirectoryDemo { public static void main(String[] args) { // 如果没有指定参数,则缺省为当前目录. if (args.length == 0) { args = new String[] { "." }; try { // 新建指定目录的File对象. File currentPath = new File(args[0]); // 在

01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)

Java的经典排序--选择排序--冒泡排序--折半查找 选择排序 选择排序 3 2 1 5 8 0 1 3 2 5 8 1 1 2 3 5 8 2 1 2 3 5 8 3 1 2 3 5 8 public static void main(String[] args) { int[] arr={3,2,1,5,8}; selectSort(arr); for(int i = 0 ; i < arr.length ; i ++){ System.out.println(arr[i]) ; } }

java必备——经典的Hibernate

在编程开发中,我们有非常多框架,他们有些非常方便,也非常有用,今天我们一起来认识一个java经典的框架Hibernate,Hibernate英文名称为"冬眠".这是个非常有意思的技术,相同这个名字也非常巧妙! 大家先看看这个技术的书籍在国外的封面: 简单介绍: 大家知道冬眠的动物是精巧的,在冻僵的边缘,而Hibernate的一个巨大作用就是对数据持久化的实现.这两者有什么联系? 简介数据持久化: 数据持久化是解决程序与数据库之间交互訪问的问题,使程序不直接訪问数据库,而是直接訪问Ses

JAVA的经典算法题

资料来源:http://blog.csdn.net/l1028386804/article/details/51097928 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class Demo01 { public static void main(String args[]) { for

java 冒泡排序 经典算法题

//        冒泡排序:经典算法题.//        有一组数字 2,10,8,20,11,把这组数按照从大到小的顺序排列出来.20,11,10,8,2//        2,10,8,20,11 //        找出最大的数,放到第一位(1,2,3,4,5)//        20,10,8,2,11 //        从剩下的4个数中,找最大的(2,3,4,5)//        20,11,8,2,10 //        从剩下的3个数中,找最大的(3,4,5)//    

Java线程经典面试题

53道Java线程面试题 下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒.Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点. 2) 线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并

JAVA之经典学生类

class student { //定义学生编号 private String stu; //学生姓名 private String name; //学生书信成绩 private float math; //学生语文成绩 private float chinese; //学生英语成绩 private float english; //属性初始化 public student(String stu,String name,float math,float chinese,float english