精华内容
下载资源
问答
  • 在开发中,有些时候我们要对一个集合中的对象某个属性进行拼音排序,便于更快的找到汉字,我采用Comparator接口,在实现这个接口里定义排序规则,取得比较对象的汉字编码,并将其转换成字符串,运用String类的...

    在开发中,有些时候我们要对一个集合中的对象的某个属性进行按拼音排序,便于更快的找到汉字,我采用Comparator接口,在实现这个接口里定义排序规则,取得比较对象的汉字编码,并将其转换成字符串,运用String类的 compareTo()方法对两对象进行比较。说了这么多,怎么还不贴代码啊。。。

    一,建一个要排序的对象实体类ProvinceVO。

    /*

    * Copyright 2013 The JA-SIG Collaborative. All rights reserved.

    * distributed with this file and available online at

    * http://www.etong.com/

    */

    package snippet;

    import java.io.Serializable;

    /**

    * 要排序的对象实体类

    *

    * @author 甘维彬 Exp

    * @version $FileName: ProvinceVO.java $Date: 2013-3-27 下午2:11:06 -0400 2013

    * @since 1.0

    *

    */

    public class ProvinceVO implements Serializable {

    private static final long serialVersionUID = -6808503832740453598L;

    /**

    * 标识

    */

    private String id;

    /**

    * 名称

    */

    private String name;

    public String getId() {

    return id;

    }

    public void setId(String id) {

    this.id = id;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    }

    二,建一个比较器类PinYinComparator。

    /*

    * Copyright 2013 The JA-SIG Collaborative. All rights reserved.

    * distributed with this file and available online at

    * http://www.etong.com/

    */

    package snippet;

    import java.util.Comparator;

    /**

    *

    * @author 甘维彬 Exp

    * @version $FileName: descClass.java $Date: 2013-3-27 下午2:26:42 -0400 2013

    * @since 1.0

    *

    */

    public class PinYinComparator implements Comparator {

    /**

    * 实现接口里的一个方法,实现比较条件

    * 取得比较对象的汉字编码,并将其转换成字符串

    */

    @Override

    public int compare(ProvinceVO arg1, ProvinceVO arg2) {

    try {

    String str1 = new String(arg2.getName().getBytes("GB2312"), "ISO-8859-1");

    String str2 = new String(arg1.getName().getBytes("GB2312"), "ISO-8859-1");

    return str2.compareTo(str1);

    } catch (Exception e) {

    return 0;

    }

    }

    }

    三,这就是测试类了Test.

    /*

    * Copyright 2013 The JA-SIG Collaborative. All rights reserved.

    * distributed with this file and available online at

    * http://www.etong.com/

    */

    package snippet;

    import java.util.ArrayList;

    import java.util.Collections;

    import java.util.List;

    /**

    *

    * @author 甘维彬 Exp

    * @version $FileName: Snippet.java $Date: 2013-3-27 下午1:49:24 -0400 2013

    * @since 1.0

    *

    */

    public class Test {

    /**

    *

    * 运用Collections的sort()方法对其进行排序 sort()方法需要传 连个参数,一个是需要进行排序的Collection

    * 另一个是一个Comparator,这里是打印成两行,可以做相应的比较

    *

    * @param args

    */

    public static void main(String[] args) {

    List provinceList = new ArrayList();

    setProvinceList(provinceList);

    for (ProvinceVO key : provinceList) {

    System.out.print(key.getName() + ",");

    }

    System.out.println();

    Collections.sort(provinceList, new PinYinComparator());

    for (ProvinceVO key : provinceList) {

    System.out.print(key.getName() + ",");

    }

    }

    /**

    * 准备对象数据集合

    *

    * @param provinceList

    */

    private static void setProvinceList(List provinceList) {

    ProvinceVO provinceVO = new ProvinceVO();

    provinceVO.setName("南昌市");

    provinceList.add(provinceVO);

    ProvinceVO provinceVO1 = new ProvinceVO();

    provinceVO1.setName("九江市");

    provinceList.add(provinceVO1);

    ProvinceVO provinceVO2 = new ProvinceVO();

    provinceVO2.setName("新余市");

    provinceList.add(provinceVO2);

    ProvinceVO provinceVO3 = new ProvinceVO();

    provinceVO3.setName("鹰潭市");

    provinceList.add(provinceVO3);

    ProvinceVO provinceVO4 = new ProvinceVO();

    provinceVO4.setName("赣州市");

    provinceList.add(provinceVO4);

    ProvinceVO provinceVO5 = new ProvinceVO();

    provinceVO5.setName("抚州市");

    provinceList.add(provinceVO5);

    ProvinceVO provinceVO6 = new ProvinceVO();

    provinceVO6.setName("上饶市");

    provinceList.add(provinceVO6);

    ProvinceVO provinceVO7 = new ProvinceVO();

    provinceVO7.setName("萍乡市");

    provinceList.add(provinceVO7);

    ProvinceVO provinceVO8 = new ProvinceVO();

    provinceVO8.setName("宜春市");

    provinceList.add(provinceVO8);

    ProvinceVO provinceVO9 = new ProvinceVO();

    provinceVO9.setName("景德镇市");

    provinceList.add(provinceVO9);

    ProvinceVO provinceVO10 = new ProvinceVO();

    provinceVO10.setName("吉安市");

    provinceList.add(provinceVO10);

    }

    }

    结果就可以看到相应的变化了。

    南昌市,九江市,新余市,鹰潭市,赣州市,抚州市,上饶市,萍乡市,宜春市,景德镇市,吉安市,

    抚州市,赣州市,吉安市,景德镇市,九江市,南昌市,萍乡市,上饶市,新余市,宜春市,鹰潭市,

    ~~~~~~~~~~~~~~~~

    文笔不好,见笑了@~~@..

    展开全文
  • 对List集合中的对象进行按某个属性排序 下面是个人在处理业务中的使用: 到了这里你觉得很神奇?错了,现在是java8的时代,我们来看看新特性下如何排序的: List all = new ArrayList<>(); //根据创建时间...

    对List集合中的对象进行按某个属性排序

    下面是个人在处理业务中的使用:
    在这里插入图片描述
    到了这里你觉得很神奇?错了,现在是java8的时代,我们来看看新特性下如何排序的:

    List all = new ArrayList<>();
    //根据创建时间降序排序
    all.sort(Comparator.comparing(CountCardDetailVo::getCreateTime).reversed());
    //根据创建时间升序排序
    all.sort(Comparator.comparing(CountCardDetailVo::getCreateTime));

    在这里插入图片描述

    图片: Alt

    带尺寸的图片: Alt

    居中的图片: Alt

    居中并且带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    var foo = 'bar';
    

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目 Value
    电脑 $1600
    手机 $12
    导管 $1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列 第二列 第三列
    第一列文本居中 第二列文本居右 第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPE ASCII HTML
    Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
    Quotes "Isn't this fun?" “Isn’t this fun?”
    Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to-HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。1

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

    Γ(z)=0tz1etdt. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06Mon 13Mon 20已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

    张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间, 文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0开始我的操作确认?结束yesno
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. 注脚的解释 ↩︎

    展开全文
  • import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List;... * Java程序对集合里的对象按对象某个属性排序,这个属性是日期(YYYY-MM-DD hh:mm) * @author
    <span style="font-size:18px;">package com.takesend.test;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Date;
    import java.util.List;
    
    /**
     * Java程序对集合里的对象按对象的某个属性排序,这个属性是日期(YYYY-MM-DD hh:mm)
     * @author Administrator
     *
     */
    public class Employee  {
    	public static void main(String[] args) {
    		List<Teacher> list = new ArrayList<Teacher>();
    		Collections.sort(list);
    	}
    }
    class Teacher implements Comparable<Teacher> {
    	//参加工作日期
    	private Date entry;
    	public Date getEntry() {
    		return entry;
    	}
    	public void setEntry(Date entry) {
    		this.entry = entry;
    	}
    	public int compareTo(Teacher teacher) {
    		return this.entry.compareTo(teacher.getEntry());
    	}
    	
    }</span>

    展开全文
  • 如何对List集合中的对象进行按某个属性排序

    万次阅读 多人点赞 2018-03-06 08:42:33
    我们在实际的开发工作中,经常会碰到排序的问题,如题,我们如何针对List集合中的某一个属性进行排序先举一个简单的例子:package test; import java.util.ArrayList; import java.util.List; import java.util.*; ...

    我们在实际的开发工作中,经常会碰到排序的问题,如题,我们如何针对List集合中的某一个属性进行排序

    先举一个简单的例子:

    package test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.*;
    
    public class Demo {
    
    	
    	
    	public static void main(String[] args) {
    		
    		
    		List<String> list1 = new ArrayList<>();
    		list1.add("3");
    		list1.add("4");
    		list1.add("1");
    		list1.add("2");
    		System.out.println("排序前--:"+list1.toString());
    		Collections.sort(list1);
    		System.out.println("排序前后--:"+list1.toString());
    		
    
    	}
    }

    打印控制台信息:


    排序的结果很理想

    额  可是我们碰到的情况大部分都不会这么简单,哪会有这么弱智的情况还让排序的

    我们这样


    编译不通过,原因


    意思就是这个TestA类得继承Comparable,那为什么String可以直接比较呢,看一下String的源码发现:


    String类也是实现了Comparable接口,

    所以,可以这样做:

    package test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.*;
    
    public class Demo {
    
    	
    	
    	public static void main(String[] args) {
    		
    		TestA testA1 = new TestA("老张", 3);
    		TestA testA2 = new TestA("老李", 1);
    		TestA testA3 = new TestA("老王", 2);
    		List<TestA> list  = new ArrayList<>();
    		list.add(testA1);
    		list.add(testA2);
    		list.add(testA3);
    		System.out.println("排序前--:"+list.toString());
    		Collections.sort(list, new Comparator<TestA>() {
                @Override
                public int compare(TestA o1, TestA o2) {
                    //升序
                    return o1.getAge().compareTo(o2.getAge());
                }
            });
    		System.out.println("升序排序后--:"+list.toString());
    		
    		Collections.sort(list, new Comparator<TestA>() {
                @Override
                public int compare(TestA o1, TestA o2) {
                    //升序
                    return o2.getAge().compareTo(o1.getAge());
                }
            });
    		System.out.println("降序排序后--:"+list.toString());
    		
    	}
    	
    }
    结果:

    我们还可以用TestA类实现Comparable接口重写compareTo

    package test;
    
    public class TestA implements Comparable<TestA>{
    	private String name;
    	
    	private Integer age;
    
    	public TestA(String name, Integer age) {
    		super();
    		this.name = name;
    		this.age = age;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public Integer getAge() {
    		return age;
    	}
    
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    
    	@Override
    	public String toString() {
    		return "TestA [name=" + name + ", age=" + age + "]";
    	}
    
    	@Override
    	public int compareTo(TestA o) {
    		return this.age.compareTo(o.getAge());
    	}
    	
    	
    }

    结果:


    over;

    本文大部分参考网上资源,用于笔记心得记录,侵删  

    展开全文
  • 集合按某个属性排序

    千次阅读 2013-05-26 21:57:44
    集合对象按属性某个值的降序排列: package zy.utils; import java.util.Comparator; import zy.pageModel.Vote; /** * @author Bob * 排列降序排列 * */ public class MyComparator implements ...
  • 最近在实际的开发工作中,碰到排序的问题,如题,我们如何针对List集合中的某一个属性进行排序这里先举一个简单的例子:importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;/*** Created by ...
  • 在开发中,我们可能会遇到,我们会根据不同情况对一个List集合进行排序操作,为了方便List集合根据对象中的某一个属性进行排序,开发了如下工具类: package test; import java.lang.reflect.Field; import java...
  • java8以上 //提交时间降序 --Lamdba表达式 Collections.sort(companyList, (a, b) -> b.getCreateTime().compareTo(a.getCreateTime()));
  • 上代码: import java.util.ArrayList; import java.util.Collections; import static java.util.Comparator.comparing;... //创建集合并赋值 ArrayList<People> peopleList = new ArrayList&l
  • 在日常工作中经常用到需要对java对象集合或者Map集合中的某个属性排序,这个需求可以利用Apache的commons-beanutils和commons-collections包来实现,主要实现方式如下: public static <T> void sort(List<T> list...
  • import java.lang.reflect.Field;import java.text.NumberFormat;import java.util.Collections;import java.util.Comparator;import java.util.Date;...public class ListUtils {/*** 对list的元素...
  • 近来由于项目的需要,准备实现对象集合的排序问题,了解一下互联网上的排序... 这样做的确能实现对象集合按对象某个已知的属性进行排序,譬如我实现姓名的排序(假定此对象拥有name属性),那么我可以这么写: ...
  • import java.lang.reflect.Field;import java.text.NumberFormat;import java.util.Collections;import java.util.Comparator;import java.util.Date;...public class ListUtils {/*** 对list的元素...
  • 将他们存放在集合中并价格排序再迭代输出 package com.exercise2_4; import java.util.ArrayList; import java.util.Collections; import java.util.List; class Car implements Comparable<...
  • 昨天遇到要用下拉框显示地区...这个List中存放的是一个对象Area--包含有很多属性,中国人比较习惯的索引方式是拼音索引。正好Area有一个属性为code存放的就是拼音。Listareas=areaService.getAllArea();Collection...
  • java中进行集合排序

    2016-10-13 11:44:43
    java对象某个属性进行升序降序的排序
  • Java中对集合当中的对象进行排序

    千次阅读 2011-11-18 18:19:52
    近日工作当中需要将一些数据一定的格式进行排序,而这些数据是从数据库当中查询出来的一些对象某个属性,无法此属性进行排序查询。为此想到将对象取出后再将对其某格式进行排序,这就需要运用到对集合进行...
  • 昨天遇到要用下拉框显示地区列表,当时做出来后...这个List中存放的是一个对象Area--包含有很多属性,中国人比较习惯的索引方式是拼音索引。正好Area有一个属性为code存放的就是拼音。List<Area>areas=area...
  • java 面试题 总结

    2009-09-16 08:45:34
    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...
  • 12反射 是java程序开发的特征之一,允许java程序对自身进行检查,并能直接操作程序的内部属性; instanceof操作符,instanceof.java; 获取类的信息,ViewClassInfoJrame.java; 动态调用类的方法,CallMetod.java; ...
  • Java 中你可以凭借多态性,通过一个画圆的对象,来创建一个画椭圆或矩形的对象。不管是 画圆,画椭圆还是画矩形的方法,它们都有一个相同的方法名,但以不同的方式完成他们的 画圆的功能。 1.8 类和对象 1.8.1 ...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...
  • Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...
  • java面试800题

    2011-09-13 20:25:48
    Java基本类型的都是值传递,对象使用的都是引用传递 Q0043 java相关概念 "static:静态,无需实例化,可直接引用,全局只有一份copy,修饰变量和方法 final:最终的,不可继承、不可修改,修饰变量、方法、类 ...

空空如也

空空如也

1 2 3
收藏数 58
精华内容 23
关键字:

java对象集合按某个属性排序

java 订阅