`

对ArrayList中的元素按照某一列进行排序

    博客分类:
  • java
 
阅读更多

对ArrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用。

实现Comparator接口必须实现compare方法,自己可以去看API帮助文档。

创建一个Comparator实例后,用Collections.sort(List,<E>)对List中的元素进行排序。

下面是实现代码:

以下文件必须引入util包:

package com.test;

import java.util.*;

Emp.java文件如下:

class Emp{
private String empNo ;
private String empName ;
private float sal ;

public String getEmpNo() {
   return empNo;
}
public void setEmpNo(String empNo) {
   this.empNo = empNo;
}
public String getEmpName() {
   return empName;
}
public void setEmpName(String empName) {
   this.empName = empName;
}
public float getSal() {
   return sal;
}
public void setSal(float sal) {
   this.sal = sal;
}

public Emp(String empNo,String empName,float sal){
   this.empNo = empNo ;
   this.empName = empName ;
   this.sal = sal ;
} 
}

 

MyComparator文件如下:

class MyComparator implements Comparator{

    public int compare(Object o1,Object o2) {
       Emp e1=(Emp)o1;
       Emp e2=(Emp)o2; 
       if(e1.getSal()<e2.getSal())
        return 1;
       else
        return 0;
       }
}

 

主函数Test.java文件如下:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
   // TODO Auto-generated method stub
   ArrayList al = new ArrayList() ;
   Emp emp1 = new Emp("sn001","ysj1",2500) ;
   Emp emp2 = new Emp("sn002","ysj2",1200) ;
   Emp emp3 = new Emp("sn003","ysj3",8900) ;
   Emp emp4 = new Emp("sn004","ysj4",3400) ;
   Emp emp5 = new Emp("sn005","ysj5",4500) ;
   al.add(emp1) ;
   al.add(emp2) ;
   al.add(emp3) ;
   al.add(emp4) ;
   al.add(emp5) ;
  
   System.out.println("排序前的值");
   for(int i=0;i<al.size();i++){
    Emp emp = (Emp)al.get(i) ;
    System.out.println(emp.getSal());
   } 
   //必须是Comparator中的compare方法和Collections.sort方法配合使用才管用
   MyComparator mc = new MyComparator() ;
   Collections.sort(al, mc) ;
  
   System.out.println("排序后的值");
   for(int i=0;i<al.size();i++){
    Emp emp = (Emp)al.get(i) ;
    System.out.println(emp.getSal());
   }
}
}

 

分享到:
评论

相关推荐

    牛客的代码leetcode代码区别-Algorithm::backhand_index_pointing_right:剑指offer;:backhand_index_pointing_right:leetcode;

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目...

    Java面试宝典2010版

    10、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 11、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp...

    最新Java面试宝典pdf版

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    Java面试笔试资料大全

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    net学习笔记及其他代码应用

    3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static ...

    C#编程经验技巧宝典

    81 &lt;br&gt;0120 如何根据标点符号分行 81 &lt;br&gt;0121 如何将字符串颠倒输出 82 &lt;br&gt;0122 如何设置小数的保留位数 82 &lt;br&gt;0123 如何对字符串进行组合或分解 82 &lt;br&gt;0124 判断字符串中某一字符是否...

    Java面试宝典-经典

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    JAVA面试宝典2010

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    java面试题大全(2012版)

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    Java面试宝典2012版

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到...

    Java面试宝典2012新版

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    java面试宝典2012

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 67 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    java基础题 很全面

    16. 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 22 17. 说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld....

    JAVA面试题最全集

    给定一个C语言函数,要求实现在java类中进行调用。 45.如何获得数组的长度? 46.访问修饰符“public/private/protected/缺省的修饰符”的使用 47.用关键字final修饰一个类或者方法时,有何意义? 48.掌握类和...

    practice.cardb

    在本练习中,您将使用以下内容进行练习: 介面 遗产 数组 概述 对于此分配,您将使用以下CSV文件构建数据库: 。 然后,您将实现一个驱动程序类,该驱动程序类调用方法以从数据库中检索所需的信息。 如果这是分级...

    C#全能速查宝典

    《C#全能速查宝典》所讲的知识点按照功能和字母进行排序,读者既可以按照功能顺序查找,又可以按照字母顺序学习。 《C#全能速查宝典》不仅适合C#程序设计初学者,也可作为中、高级程序开发人员的参考手册。 ========...

    数据结构、算法与应用:C++语言描述(原书第2版)第二部分

    5.5 在一个数组中实现的多重表 5.6 性能测量 5.7 参考及推荐读物 第6章 线性表——链式描述 6.1 单向链表 6.1.1 描述 6.1.2 结构chainNode 6.1.3 类chain 6.1.4 抽象数据类型linearList的扩充 6.1.5 类extendedChain...

    Java开发技术大全(500个源代码).

    getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维数组 traversing.java 遍历一维数组 useStrBuf.java 使用...

Global site tag (gtag.js) - Google Analytics