java教程之二个arraylist排序的示例分享

示例1


复制代码 代码如下:

package com.yonyou.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Test {
 public static void main(String[] args) {
  Student zlj = new Student("丁晓宇", 21);
  Student dxy = new Student("赵四", 22);
  Student cjc = new Student("张三", 11);
  Student lgc = new Student("刘武", 19);
  List<Student> studentList = new ArrayList<Student>();
  studentList.add(zlj);
  studentList.add(dxy);
  studentList.add(cjc);
  studentList.add(lgc);
  System.out.println("按照年齡排序:");
  Collections.sort(studentList, new SortByAge());
  for (Student student : studentList) {
   System.out.println(student.getName() + " / " + student.getAge());
  }
  System.out.println(" ========= ");
  System.out.println("按照姓名排序");
  Collections.sort(studentList, new SortByName());
  for (Student student : studentList) {
   System.out.println(student.getName() + " / " + student.getAge());
  }
 }
}
class SortByAge implements Comparator {
 public int compare(Object o1, Object o2) {
  Student s1 = (Student) o1;
  Student s2 = (Student) o2;
  if (s1.getAge() > s2.getAge())
   return 1;
  else if (s1.getAge() == s2.getAge()) {
   return 0;
  }
  return -1;
 }
}
class SortByName implements Comparator {
 public int compare(Object o1, Object o2) {
  Student s1 = (Student) o1;
  Student s2 = (Student) o2;
  if(s1.getName().compareTo(s2.getName()) < 0)
   return -1;
  else if (s1.getName().compareTo(s2.getName()) > 0) {
   return 1;
  }
  return 0;
 }
}
class Student{
 private int age;
 private String name;
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public Student(String name,int age) {
  this.age = age;
  this.name = name;
 }
}

示例2

常常遇到数组排序的问题.比如我有一个Person类,它的实例对象存储在ArrayList数组中,现在要把ArrayList数组中 的Person对象按照年龄排序.
其实这种情况经常遇到.
下面给出源代码:

1:Person.java文 件:

复制代码 代码如下:

public class Person{
     String name;
     int age;

public Person(String name,int age){
     this.name = name;
     this.age = age;

}
 public int getAge() {
     return age;
 }
 public void setAge(int age) {
     this.age = age;
 }
 public String getName() {
     return name;
 }
 public void setName(String name) {
     this.name = name;
 }
}

2:Mycomparator.java

复制代码 代码如下:

// 实现Comparator接口,也就是定义排序规则,你几乎可以定义任何规则
package com.infoearth;
import java.util.*;
public class Mycomparator implements Comparator{

public int compare(Object o1,Object o2) {
        Person p1=(Person)o1;
        Person p2=(Person)o2; 
       if(p1.age<p2.age)
           return 1;
       else
           return 0;
       }

}

3:ListSort.java


复制代码 代码如下:

package com.infoearth;

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

public class ListSort {
     public static void main(String[] args){
         ArrayList list = new ArrayList();
         list.add(new Person("lcl",28));
         list.add(new Person("fx",23));
         list.add(new Person("wqx",29));
         Comparator comp = new Mycomparator();
         Collections.sort(list,comp); 
         for(int i = 0;i<list.size();i++){
             Person p = (Person)list.get(i);
             System.out.println(p.getName());
         }

}

}

当然,如果你的List包装的是基本类型或者String,则只要 Collections.sort(list);即可

时间: 2014-03-05

java实现List中对象排序的方法

本文实例讲述了java实现List中对象排序的方法.分享给大家供大家参考,具体如下: package com.test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class NewsManager { /** * @param args */ public static void main(String[

Java对List进行排序的两种实现方法

前言 Java.util包中的List接口继承了Collection接口,用来存放对象集合,所以对这些对象进行排序的时候,要么让对象类自己实现同类对象的比较,要么借助比较器进行比较排序. 学生实体类,包含姓名和年龄属性,比较时先按姓名升序排序,如果姓名相同则按年龄升序排序. 第一种:实体类自己实现比较 (实现comparable接口:public interface Comparable<T> ,里面就一个方法声明:public int compareTo(T o); ) 示例代码: publ

java中List对象排序通用方法

本文实例讲述了java中List对象排序通用方法.分享给大家供大家参考.具体分析如下: 在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询.如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能. 只要把第一次查出来的结果存放在session中,就可以对list重新排序了.一般对list排序可以使用Collections.sort(list),但如果list中包含是一个对象的话,这种方法还是行不通的.那要怎么排序

Java ArrayList的不同排序方法

由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减.你可能已经使用过 ArrayList,因此我将略过基础部分.如果你对 ArrayList 还不熟悉,你可以参考它的 API 文档,可以很容易理解在 ArrayList 上执行基本的操作. 在这篇文章中,我将讨论 ArrayList 中一种极其重要的操作,你很

java ArrayList集合中的某个对象属性进行排序的实现代码

开发中有时候需要自己封装分页排序时,List如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教. 1.Student的Bean如下: public class Student { private int age; private String name; private String weight; public String getWeight() { return weight; } public void setWeight(String weight) { th

Java中对list元素进行排序的方法详解

在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList.这些集合提供了对对象组的索引访问.他们提供了元素的添加与删除支持.然而,它们并没有内置的元素排序支持. 你能够使用java.util.Collections类中的sort()方法对List元素进行排序.你既可以给方法传递一个List对象,也可以传递一个List和一个Comparator.如果列表中的元素全都是相同类型的类,并且这个类实现了Comparable接口,你可

java的arraylist排序示例(arraylist用法)

写了一个java数组排序示例,这里分享给大家共同学习 复制代码 代码如下: package com.yonyou.test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test { public static void main(String[] args) {  Student zlj = new St

Java按照List内存储的对象的某个字段进行排序的实例

关键点:将List内存储的对象实现Comparable类,重写它的compareTo()方法即可 Bean: package chc; public class StuVo implements Comparable<StuVo>{ private String id; private String name; private Integer age; public StuVo(String id, String name, Integer age) { this.id=id; this.na

用Java集合中的Collections.sort方法如何对list排序(两种方法)

第一种是list中的对象实现Comparable接口,如下: /** * 根据order对User排序 */ public class User implements Comparable <user> { private String name; private Integer order; public String getName() { return name; } public void setName(String name) { this.name = name; } publi

java操作mongodb基础(查询 排序 输出list)

复制代码 代码如下: package com.infomorrow.webroot; import java.util.List; import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.MongoClient; public cl

Java操作MongoDB模糊查询和分页查询

本文实例为大家分享了Java操作MongoDB模糊查询和分页查询,供大家参考,具体内容如下 模糊查询条件: 1.完全匹配 Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE); 2.右匹配 Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE); 3.左匹配 Pattern pattern =

【MongoDB for Java】Java操作MongoDB数据库

本篇文章主要介绍Java操作MongoDB. 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5.mongo-2.5.3.jar.junit-4.8.2.jar 一.准备工作 1. 首先,下载mongoDB对Java支持的驱动包 驱动包下载地址:http://www.jb51.net/softs/41751.html mongoDB对Java的相关支持.技术:http://www.mongodb

java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)

如下所示: package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Date; import org.apache.commons.beanutils.BeanUtils; import com.mongodb.BasicDBObject; import com.mongodb.DBObje

Java操作Mongodb数据库实现数据的增删查改功能示例

本文实例讲述了Java操作Mongodb数据库实现数据的增删查改功能.分享给大家供大家参考,具体如下: 首先,我们在windows下安装mongodb数据库,安装教程可查看前面一篇文章:http://www.jb51.net/article/85605.htm 代码如下: package io.mogo; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.mongodb.BasicDBObj

java中 Set与Map排序输出到Writer详解及实例

 java中 Set与Map排序输出到Writer详解及实例 一般来说java.util.Set,java.util.Map输出的内容的顺序并不是按key的顺序排列的,但是java.util.TreeMap,java.util.TreeSet的实现却可以让Map/Set中元素内容以key的顺序排序,所以利用这个特性,可以将Map/Set转为TreeMap,TreeSet然后实现排序输出. 以下是实现的代码片段: /** * 对{@link Map}中元素以key排序后,每行以{key}={val

java操作solr实现查询功能的实例

一.封装的查询方法 /** * solr查询方法 * @param client solr客户端 * @param query solr查询对象 * @return list集合 * @throws SolrServerException * @throws IOException */ public static List<Map<String, Object>> getSolrQuery(HttpSolrClient client, SolrQuery query) throw

java操作mongoDB查询的实例详解

java操作mongo查询的实例详解 前言: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且

Java操作MongoDB插入数据进行模糊查询与in查询功能

由于需要用MongoDB缓存数据,所以自己写了一套公共的存放和读取方法 具体如下: 存放mongodb: /** * 公共方法:设置Object类型缓存 * @author shijing * @param param * @param sysGuid */ public void setObjData(Map<String,Object> param, String sysGuid, String enumBpd){ DBObject dbObject = new BasicDBObject

Java操作MongoDB数据库方法详解

Java与mongodb的连接 1. 连单台mongodb Mongo mg = new Mongo();//默认连本机127.0.0.1 端口为27017 Mongo mg = new Mongo(ip);//可以指定ip 端口默认为27017 Mongo mg = new Mongo(ip,port);//也可以指定ip及端口 2. 连双台mongodb //ip为主机ip地址,port为端口号,dataBaseName相当于数据库名 DBAddress left = new DBAddre