环境:JDK1.8+。然后复制粘贴代码即可用。
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
public class MainController {
public static void main(String[] args) {
//一.将图一四个人的信息放入list中
Liststudents = new ArrayList<>();
Student s1 = new Student("小赵",getTime("1992.08.11"),400);
Student s2 = new Student("小钱",getTime("1995.01.24"),750);
Student s3 = new Student("小孙",getTime("1990.06.05"),670);
Student s4 = new Student("小李",getTime("1991.12.17"),550);
students.add( s1 );
students.add( s2 );
students.add( s3 );
students.add( s4 );
//二.计算四个人成绩的平均值,并输出每个人比平均值多或少多少分。
System.out.println("二.计算四个人成绩的平均值,并输出每个人比平均值多或少多少分。");
average( students );
//三.将四人排序输出,控制台输出结果请参照图二
System.out.println("三.将四人排序输出,控制台输出结果请参照图二");
sort( students );
//四.用递归计算出小赵的成绩以每月2%的增长,多少个月后他的成绩可以超过小钱。
System.out.println("四.用递归计算出小赵的成绩以每月2%的增长,多少个月后他的成绩可以超过小钱。");
markBeyong( students.get(0).getMark() , students.get(1).getMark() );
}
public static void average( Liststudents ){
int sum = 0;//总成绩
for ( Student student: students ){
sum = sum + student.getMark();
}
int average = sum/students.size();//平均成绩
students.forEach( student -> {
if ( student.getMark() > average ){
System.out.println( student.getName() + "比平均分高:" + (student.getMark() - average) );
}else if ( student.getMark() < average ){
System.out.println( student.getName() + "比平均分低:" + ( average - student.getMark()) );
}else {
System.out.println( student.getName() + "和平均分一样" );
}
} );
}
public static void sort( Liststudents ){
ListstudentBir = new ArrayList<>();
studentBir.addAll( students );
System.out.println("①第一种排序,按照出生年月日升序;");
Collections.sort( studentBir, (o1, o2) -> ( o1.getBirthDay().compareTo( o2.getBirthDay() ) ) );
studentBir.forEach( stu ->{
System.out.println( stu.getName() + " | " + getTime(stu.getBirthDay()) + " | " + stu.getMark() );
} );
System.out.println(" ②第二种排序,按照成绩降序;");
ListmarkDesc = students.stream().sorted((a, b) -> b.getMark() - a.getMark()).collect(Collectors.toList());
markDesc.forEach( stu ->{
System.out.println( stu.getName() + " | " + getTime(stu.getBirthDay()) + " | " + stu.getMark() );
} );
System.out.println("③比较输出:计算他们互相大多少天,要考虑到闰年。");
for ( int i = 0 ; i < students.size() ; i++ ){
for ( int j = i + 1 ; j < students.size() ; j++ ){
Long ageSub = students.get( i ).getBirthDay().getTime() - students.get( j ).getBirthDay().getTime();
Long dateSub = ageSub/(1000*60*60*24);
if ( dateSub > 0 ){
System.out.println( students.get( i ).getName() + "比" + students.get( j ).getName() + "大" + dateSub );
}else if ( dateSub < 0 ){
System.out.println( students.get( i ).getName() + "比" + students.get( j ).getName() + "小" + -dateSub );
}else {
System.out.println( students.get( i ).getName() + "和" + students.get( j ).getName() + "同日出生" );
}
}
}
}
public static void markBeyong( int mark ,int targetMark){
double markDou = mark;
double targetMarkDou = targetMark;
boolean b = true;
int month = 0;
while ( b ){
if ( markDou < targetMarkDou ){
markDou = markDou*1.02;
month ++;
}else {
System.out.println("一共用了" + month + "个月反超");
b = false;
}
}
}
public static Date getTime( String target ) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
Date date = sdf.parse(target);
return date;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static String getTime( Date target ) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
String date = sdf.format( target );
return date;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
class Student {
private String name;
private Date birthDay;
private Integer mark;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}
public Integer getMark() {
return mark;
}
public void setMark(Integer mark) {
this.mark = mark;
}
public Student(){
}
public Student(String name,Date birthDay , Integer mark){
this.name = name;
this.birthDay = birthDay;
this.mark = mark;
}
}
专业代写,100折现可以优惠