在键盘上分别输入5个人的名字,年龄,性别,ID~然后按5个人的年龄从大到小的打印出来!面向对象的方法做出来~谁能帮我写一个让我看看好吗?
我已经在一个方法里写出来输入了~怎么在另一个方法里写排序输出啊?大哥们帮帮忙!
import java.util.*;
public class  Tesx
{
Ren r;

public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
Tesx Te=new Tesx();
Te.r=new Ren();
Ren[] r=new Ren[5];
for(int i=0;i<r.length;i++){
r[i]=new Ren();
System.out.println("请输入第"+(i+1)+"个人的ID");
r[i].id=sc.nextInt();
System.out.println("请输入第"+(i+1)+"个人的姓名");
r[i].name=sc.next();
System.out.println("请输入第"+(i+1)+"个人的性别");
r[i].sex=sc.next();
System.out.println("请输入第"+(i+1)+"个人的年龄");
r[i].age=sc.nextInt();
}
}

解决方案 »

  1.   

    只要实现一个迭代器Iterator,在内部实现排序即可
      

  2.   

    import java.util.*;
    public class  Tesx
    {
    Ren r;

    public static void main(String[] args)
    {
    Scanner sc=new Scanner(System.in);
    Tesx Te=new Tesx();
    Te.r=new Ren();
    Ren[] r=new Ren[5];
    for(int i=0;i<r.length;i++){
    r[i]=new Ren();
    System.out.println("请输入第"+(i+1)+"个人的ID");
    r[i].id=sc.nextInt();
    System.out.println("请输入第"+(i+1)+"个人的姓名");
    r[i].name=sc.next();
    System.out.println("请输入第"+(i+1)+"个人的性别");
    r[i].sex=sc.next();
    System.out.println("请输入第"+(i+1)+"个人的年龄");
    r[i].age=sc.nextInt();
    }
    for(int i=0;i<r.length;i++){
    for(int j=0;j<r.length;j++){
    if(r[i].age<r[j].age){
    int sum=0;
    sum=r[i].age;
    r[i].age=r[j].age;
    r[j].age=sum;
    }
    }
    System.out.println("5个人的年龄从大到小的顺序是"+r[i].id+" "+r[i].name+" "+r[i].sex+" "+r[i].age);
    }
    }

    }
    我写在一个里面可是输出一直所有的年龄都变成了最大的哪个~应该把SUM写在那?
      

  3.   

    import java.util.*; 
    public class  Test

    Ren r; public static void main(String[] args) 

    Scanner sc=new Scanner(System.in); 
     
    Ren[] r=new Ren[5]; 
    for(int i=0;i <r.length;i++){ 
    r[i]=new Ren(); 
    System.out.println("请输入第"+(i+1)+"个人的ID"); 
    r[i].id=sc.nextInt(); 
    System.out.println("请输入第"+(i+1)+"个人的姓名"); 
    r[i].name=sc.next(); 
    System.out.println("请输入第"+(i+1)+"个人的性别"); 
    r[i].sex=sc.next(); 
    System.out.println("请输入第"+(i+1)+"个人的年龄"); 
    r[i].age=sc.nextInt(); 

    Arrays.sort(r);
    for(int i=0;i<r.length;i++){
    System.out.println(r[i]);
    }
    }
    }
    class Ren implements Comparable<Ren>{
    int id;
    String name;
    String sex;
    int age; public int compareTo(Ren other) { Ren o=(Ren)other;
    if(o.age>this.age)
    return -1;
    else if(o.age<this.age)
    return 1;
    else
    return 0; }
    public String toString(){
    return "id:"+id+",name:"+name+",sex:"+sex+":"+age;
    }
    }
      

  4.   

    晕怎么把这行写进去了Ren o=(Ren)other;
      

  5.   

    冒泡排序法写错了,应该是for(int i=0;i<r.length;i++){
        for(int j=i+1;j<r.length;j++){
            if(r[i].age<r[j].age){
                 int sum=0;
                 sum=r[i].age;
                 r[i].age=r[j].age;
                 r[j].age=sum;
         }
    }        
      

  6.   

    4楼的代码我有些问题啊 
    Scanner sc=new Scanner(System.in);
            Tesx Te=new Tesx();
            Te.r=new Ren();
            Ren[] r=new Ren[5];是什么意思啊 ???  怎么一层又一层的定义啊,后面的name id sex age又是怎么来的啊 可以直接这样定义???
      

  7.   

    Scanner 1.4.2的JDK没有定义啊
      用这个版本的JDK怎么改写这个程序啊???