java按照集合中元素的属性进行排序示例代码

public class Student {
 private String name;
 private int age;
 private int id;
 public Student() {
  super();
 }
 public Student(String name, int age, int id) {
  super();
  this.name = name;
  this.age = age;
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 @Override
 public String toString() {
  return "id:"+id+"\tage"+age+"\tname"+name;
 }
}

public class Test {
 public static void main(String[] args) {
  ArrayList<Student> list = new ArrayList<Student>();
  list.add(new Student("张三",23,1));
  list.add(new Student("张三",24,4));
  list.add(new Student("李四",22,2));
  list.add(new Student("王五",21,3));
  Collections.sort(list,new Comparator<Student>() {
   public int compare(Student s1, Student s2) {
    if(!s1.getName().equals(s2.getName())){
     return s2.getName().compareToIgnoreCase(s1.getName());
    }
    if(s1.getAge()>s2.getAge()){
     return 1;// return 1代表需要交换位置
    }
    return -1;
   }
  });
  
  for (int i = 0; i < list.size(); i++) {
   System.out.println(list.get(i).toString());
  }
 }
}

java按照集合中元素的属性进行排序示例代码

时间: 2024-10-29 10:46:26

java按照集合中元素的属性进行排序示例代码的相关文章

java集合中对象某属性比较排序Comparable与Comparator

要对集合中的对象的某属性进行排序有两种方式. a. 一种是要排序对象类实现comparable接口的compareTo方法:然后把对象放入list:然后调用Collections.sort(list);b. 一种是不对要排序对象类做任何改动,创建Comparator接口的实现类C:然后 把对象放入list:然后调用Collections.sort(list, C); a.eg ---------------------------------- 1 public class User imple

Java List集合中元素比较大小

list排序方法一Comparator形式: 1.比较数字 List<Shoes> all_shoes = new ArrayList<Shoes>(); Collections.sort(all_shoes, new Comparator<Shoes>(){ @Override /* * * int compare(String o1, String o2) 返回一个基本类型的整型 * 返回-1表示:shoes1.getSimilarity()大于等于shoes2.g

关于集合中元素的有序无序的易混淆点

最近在整理Java基础知识的面试题,看到了一个题目的答案不够准确,这里跟大家分享一下. 一.面试题的小错误 对于TreeSet和TreeMap来说,元素应该是无序(指元素的存取)而不是有序的,而在表中它可能想表达的是可以排序,不够严谨,严格来讲 元素的有序≠可以排序.元素的存取有序和排序本质上应该是两码事,不应该混为一听. 二.元素的有序和无序 下面具体来讲讲,集合中元素的存取有序的问题. 众所周知,List的特点:    ①元素可重复 ②元素是有序的 相对地,Set的特点是:    ①元素唯一

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变了元素的值 Console.WriteLine(x); } 如果要让自定义的数据类型支持foreach循环,则该类型必须实现IEnumerable<T>接口,且存在对应此列表的IEnumerator<T>实现. 实际上,在.Net的底层(IL语言层面)而言, foreach (var

将集合中的内容按时间排序

/** * 将集合中的内容按时间排序 * @param list */ private static void ListSort(List<BossMsgInfo> list) { Collections.sort(list, new Comparator<BossMsgInfo>() { public int compare(BossMsgInfo o1, BossMsgInfo o2) { SimpleDateFormat format = new SimpleDateForm

java 线程返回值,优先级,后台线程 示例代码

ava 线程返回值,休眠,优先级,后台线程  示例代码 package org.rui.thread.basic; import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Execu

黑马程序员——java——TreeSet集合中储存学生对象,按照其年龄进行排序

TreeSet集合中储存学生对象,按照其年龄进行排序 import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.TreeSet; public class SortListDemos { public static void main(String[] args) { // //linkhash

Java Collection集合中的iterator方法

Iterator接口的概述 /** * java.util.Iterator接口:选代器(对集合进行遍历) * 有两个常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,则返回true. * 即判断集合中还有没有下ー个元素,有就返回true,没有就返回 false * E next() * 返回送代的下一个元素. * 即取出集合中的下一个元素 * iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象. * 获取实现类的方式比较特

JAVA求集合中的组合

好几个月没弄代码了,今天弄个求组合的DEMO 思路是将集合的每个值对照一个索引,索引大小是集合的大小+2.索引默认为[000...000],当组合后选取的组合值demo为[0100..00].然后根据遍历索引来到集合中取值. 上代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ComBit { public static void main(String[]