对二个对象数组进组排序永利澳门游戏网站:,一道面试题

(一道面试题)对一个对象数组进组排序,试题数组

这是我在一个面试初级工程师的时候遇到的一个问题,觉得在项目中都没怎么遇到.

一.编写一个Student对象

public class Student {
  private String name;
  private Integer age;
/**
 * @return the name
 */
/**
 * @return the name
 */
public String getName() {
    return name;
}
/**
 * @param name the name to set
 */
public void setName(String name) {
    this.name = name;
}
/**
 * @return the age
 */
public Integer getAge() {
    return age;
}
/**
 * @param age the age to set
 */
public void setAge(Integer age) {
    this.age = age;
}
/**

* <p>Title: </p>

* <p>Description: </p>

* @param name
* @param age

*/
public Student(String name, Integer age) {
    super();
    this.name = name;
    this.age = age;
}
/* (non-Javadoc)
 * @see java.lang.Comparable#compareTo(java.lang.Object)
 */
/* (non-Javadoc)
 * @see java.lang.Comparable#compareTo(java.lang.Object)
 */
}

二.编写测试类主要用到得时Collections这个辅助工具

1.Collections.sort方法支持对对象进组排序

2.使用方法:只要实现Comparator方法.

3.实现目的:主要是告诉这个方法我要用什么方式进行对象的排序

4.这里我将对学生的年龄进行排序,年龄相等的对名字再进行排序

 

package com.hck.test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


public class ArrayListDemo {
   public static void main(String[] args) {
 //创建数组并且添加对象
 List<Student> slist=new ArrayList<Student>();
 slist.add(new Student("张三", 28));
 slist.add(new Student("王五", 23));
 slist.add(new Student("老六", 27));
 slist.add(new Student("啊四", 21));
 slist.add(new Student("大红", 21));
 System.out.println("===排序前===");
 for (Student student:slist) {
  System.out.print(student.getName()+" ");
 }
 System.out.println();
    /**
     * Collections.sort方法支持对对象进组排序
     * 使用方法:只要实现Comparator方法.
     * 这个方法主要是告诉这个方法我要用什么方式进行对象的排序
     * 这里我将对学生的年龄进行排序,年龄相等的对名字再进行排序
     */
 Collections.sort(slist, new Comparator<Student>() {
  @Override
  public int compare(Student o1, Student o2) {
   //大于返回1
   if(o1.getAge()>o2.getAge())
   {
    return 1;
   }
   //小于返回-1
   if(o1.getAge()<o2.getAge())
   {
    return -1;
   }
   //等于的话比较name的大小
   //compareTo返回值也是正数,0,负数
   //对应的是大于,等于,小于
      return(o1.getName().compareTo(o2.getName()));  
   // TODO Auto-generated method stub
  }
 });
 System.out.println("===排序后===");
 //增强for循环语句打印输出
 for (Student student:slist) {
  System.out.print(student.getName()+" ");
 }
}
}

 四.实验结果:

永利澳门游戏网站 1

五.总结:这个主要是对数组熟悉程度的一个考察.

永利澳门游戏网站, 

这是我在一个面试初级工程师的时候遇到的一个问题,觉得在项目中都没怎么遇到.
一…

这是我在一个面试初级工程师的时候遇到的一个问题,觉得在项目中都没怎么遇到.

一.编写一个Student对象

public class Student {
  private String name;
  private Integer age;
/**
 * @return the name
 */
/**
 * @return the name
 */
public String getName() {
    return name;
}
/**
 * @param name the name to set
 */
public void setName(String name) {
    this.name = name;
}
/**
 * @return the age
 */
public Integer getAge() {
    return age;
}
/**
 * @param age the age to set
 */
public void setAge(Integer age) {
    this.age = age;
}
/**

* <p>Title: </p>

* <p>Description: </p>

* @param name
* @param age

*/
public Student(String name, Integer age) {
    super();
    this.name = name;
    this.age = age;
}
/* (non-Javadoc)
 * @see java.lang.Comparable#compareTo(java.lang.Object)
 */
/* (non-Javadoc)
 * @see java.lang.Comparable#compareTo(java.lang.Object)
 */
}

二.编写测试类主要用到得时Collections这个辅助工具

1.Collections.sort方法支持对对象进组排序

2.使用方法:只要实现Comparator方法.

3.实现目的:主要是告诉这个方法我要用什么方式进行对象的排序

发表评论

电子邮件地址不会被公开。 必填项已用*标注