黑马程序员技术交流社区

标题: 数组排序等的应用 [打印本页]

作者: 高廷平    时间: 2012-9-26 09:53
标题: 数组排序等的应用
package mytest_object;
/*
* 有三个人 (名字,年龄,性别),由键盘录入
* 按照年龄由大到小排序输出他们的信息
*/
import java.util.*;
public class MyObjectTest2
{
public static void main(String [] args)
{
    PersonTest [] arr=new PersonTest[3];//声明一个PersonTest类类型的数组
   
    for(int i=0;i<arr.length;i++) //初始化,必须的,不然在录入信息函数中会出现空指针异常
    {
     arr[i]=new PersonTest();
    }
   
     myInput(arr);//录入信息
     
     System.out.println("排序前:");
     myprint(arr);//输出信息
     
     System.out.println("按年龄排序后:");
     sortArrayClass(arr);//按照年龄降序排序
      myprint(arr);//输出信息
   

}

public static void myInput(PersonTest [] arr)
{
  //键盘录入信息
  Scanner can=new Scanner(System.in);
  for(int i=0;i<arr.length;i++)
  {
        System.out.print("请输入第+(i+1)+个人的信息姓名,性别,年龄:");
        arr[i].name=can.next();
        arr[i].sex=can.next();
        arr[i].age=can.nextInt();
  }
   
}
public static void sortArrayClass(PersonTest [] arr)
{
  //按照年龄对数组排序降序排序
  PersonTest temp=null;
  for(int i=0;i<arr.length-1;i++)
  {
   for(int j=i+1;j<arr.length;j++)
   {
    if(arr[i].age<arr[j].age)
    {
     temp=arr[i];
     arr[i]=arr[j];
     arr[j]=temp;
    }
   }
  }
  
}
public static void myprint(PersonTest [] arr)
{
  //调类自己的方法输出数组中的信息
  for(int i=0;i<arr.length;i++)
  {
   arr[i].printPerson();
  }
   
}
}
class PersonTest
{
int age=10;
String name="张三";
String sex="男";

void printPerson()
{
  System.out.println(name+"  性别:"+sex+"  年龄:"+age);
  
}

}


作业题,感觉自己实现的还可以,晒出来,让大家指教指教!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2