`

对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());
   }
}
}

 

分享到:
评论

相关推荐

    ArrayList转化为DataTable

    整个过程的核心在于将ArrayList中每个元素的属性映射到DataTable的列上,然后将属性值填充到对应的行中。这种方式使得原本松散的对象集合可以转换为结构化的表格数据,便于后续的数据操作和展示。 在实际开发中,...

    C#160使用对象ArrayList填充DataGrid 源代码

    在C#中,我们通常使用强类型的数据结构,如List,但ArrayList在旧版本的.NET或对兼容性有要求的项目中仍然常见。 首先,我们需要创建一个包含数据的对象类。例如,假设我们有一个名为`Employee`的类,包含`Name`、`...

    从n个数组中取出所有排列组合(Java实现)

    排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列的所有可能的方式;组合则是指不考虑元素的顺序,仅考虑元素的选取。在这个问题中,我们不仅要考虑元素的选取,还要考虑它们的顺序,因此属于...

    Java集合排序及java集合类详解.pdf

    例如,创建ArrayList或HashSet的实例,向其中添加元素,通过迭代器遍历,以及使用Collections.sort方法对集合进行排序等。文档可能还提到了集合的线程安全问题,以及如何在多线程环境下安全地操作集合,这是理解Java...

    C#实体类和实体类集合的自动排序

    在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括Windows桌面应用、Web应用和移动应用等。在这些应用中,数据通常需要以某种形式存储和展示,这时实体类(Entity Class)和实体类集合(Entity ...

    Android自定义控件---联系人列表A-Z排序

    - ListView:是一个高度可定制的视图组件,可以显示一列可滚动的项目。 - RecyclerView:相比ListView,RecyclerView更现代,性能更优,支持更多的动画效果和更灵活的布局管理器。 二、联系人数据模型 为了显示...

    Android 可拖拽 排序 GridView

    这个"Android 可拖拽 排序 GridView"的示例项目,是针对如何实现一个用户可以手动拖动元素来改变GridView中元素顺序的功能进行的。这样的功能在很多应用中都非常实用,比如任务管理器、应用抽屉或者自定义桌面布局等...

    Java集合排序及java集合类详解[收集].pdf

    自然排序是通过元素自身实现Comparable接口来完成的,而定制排序则是通过传入Comparator对象到集合的sort()方法中进行的。例如,TreeSet和TreeMap默认使用自然排序,而ArrayList和HashMap则不保证排序,但在使用...

    仿zaker效果的拖拽排序。可以动态设置列数,动态增加或者减少item,当一页填满自动增加到下一页,当页数大于1,可以左右翻页

    2. **动态增减item**:在数据源(如ArrayList)中添加或移除元素后,需通知适配器(Adapter)更新视图。这里可能需要调用`notifyDataSetChanged()`方法,以便DraggableGridViewPager能够感知数据的变化并自动刷新...

    安卓A-Z字母排序索引相关-类似微信按照字母排列listview的item.rar

    在Java或Kotlin中,你可以使用Collections.sort()方法对ArrayList或其他集合类型进行排序。 2. 字母索引:创建一个包含所有可能首字母的数组或列表,如["A", "B", "C", ..., "Z"]。这将用于构建侧滑菜单或浮动按钮...

    双列共存的listview

    提供一个排序方法,根据用户的选择对数据进行升序或降序排列。例如,可以使用Collections类的`sort()`方法,结合自定义Comparator实现排序逻辑。排序完成后,需通知Adapter数据已更新,通过调用`...

    古典算法之置换算法

    全排列是指从n个不同元素中取出m个元素(m≤n),按照一定的顺序排成一列的所有可能的排列方式。当m=n时,就称为置换,即所有元素都被选取且只被选取一次。置换算法在各种问题中都有应用,如数据处理、密码学、图论...

    C#常用類別

    將`ArrayList`中的元素複製到另一個一維陣列中。 - **IndexOf方法** 返回指定元素在`ArrayList`中的索引。如果元素不存在,則返回負值。 - **Sort方法** 對`ArrayList`中的所有元素進行升序排序。 - **...

    java面试编程题(数组和链表相关) 数组和链表.pdf

    3. 、二维数组的排序:在 Java 中,二维数组可以按照不同的方式进行排序,例如按照行排序、按照列排序等。 4. 、二维数组的搜索:在 Java 中,二维数组可以通过遍历来搜索特定的元素,例如通过遍历每个元素来判断...

    Java源码分析:集合-容器.pdf

    TreeSet利用二叉树的原理对元素进行排序,它可以将元素按照指定的顺序进行排序。如果需要对自定义对象进行排序,则要求该对象必须实现Comparable接口,并且正确覆写compareTo方法。LinkedHashSet是HashSet的一个子类...

    Java集合类(Collection)学习

    `TreeSet`则按照元素的自然排序或者自定义比较器进行排序。 再来看`TreeMap`,它属于`Map`接口的实现,不同于`List`和`Set`,`Map`接口存储的是键值对。`TreeMap`根据其键的自然顺序或自定义比较器进行排序。它提供...

    java基础之集合总结

    例如,Collections.sort()方法可以对List进行排序,Collections.reverse()方法可以反转List中的元素顺序。 总结来说,Java集合框架提供了一套丰富的方法和接口,可以用来存储和处理对象集合,包括基本的增删改查...

    Java集合排序及java集合类详解

    Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的接口和类。这个框架包括了Collection、List、Set和Map四大接口,以及它们的各种实现类。了解和掌握这些概念对于任何Java开发者来说...

    学生成绩管理 练习C#数组

    在成绩管理中,可能会需要按照成绩高低对学生进行排序,这时可以自定义比较器或者利用Linq库进行操作: ```csharp Array.Sort(students, (a, b) =&gt; int.Parse(a.Split(',')[1]).CompareTo(int.Parse(b.Split(',')[1...

Global site tag (gtag.js) - Google Analytics