您的位置:

java排序集合,javaset集合排序

本文目录一览:

Java中如何对集合排序

Java内建的排序(冒泡):Java集合有两个实现的工具类,Collections和Arrays。Collections针对集合类型。Arrays针对数组。只需要一个为你排序需要的定制的Comparator或Comparable的实现,将其作为参数传给Collections或Arrays的sort方法就行。

可以自己用程序去实现这个排序。用for从原List里面一个一个拿出来比较然后一个新建的List里面去。

楼主看一下参考资料。

java怎样对集合按照实体类的字段排序

import java.util.Comparator;

import java.util.TreeSet;

/*

 * 需求:请按照姓名的长度排序

 * 

 * TreeSet集合保证元素排序和唯一性的原理

 * 唯一性:是根据比较的返回是否是0来决定。

 * 排序:

 *  A:自然排序(元素具备比较性)

 *  让元素所属的类实现自然排序接口 Comparable

 *  B:比较器排序(集合具备比较性)

 *  让集合的构造方法接收一个比较器接口的子类对象 Comparator

 */

public class TreeSetDemo {

public static void main(String[] args) {

// 创建集合对象

// TreeSetStudent ts = new TreeSetStudent(); //自然排序

// public TreeSet(Comparator comparator) //比较器排序

// TreeSetStudent ts = new TreeSetStudent(new MyComparator());

// 如果一个方法的参数是接口,那么真正要的是接口的实现类的对象

// 而匿名内部类就可以实现这个东西

TreeSetStudent ts = new TreeSetStudent(new ComparatorStudent() {

@Override

public int compare(Student s1, Student s2) {

// 姓名长度

int num = s1.getName().length() - s2.getName().length();

// 姓名内容

int num2 = num == 0 ? s1.getName().compareTo(s2.getName())

: num;

// 年龄

int num3 = num2 == 0 ? s1.getAge() - s2.getAge() : num2;

return num3;

}

});

// 创建元素

Student s1 = new Student("linqingxia", 27);

Student s2 = new Student("zhangguorong", 29);

Student s3 = new Student("wanglihong", 23);

Student s4 = new Student("linqingxia", 27);

Student s5 = new Student("liushishi", 22);

Student s6 = new Student("wuqilong", 40);

Student s7 = new Student("fengqingy", 22);

Student s8 = new Student("linqingxia", 29);

// 添加元素

ts.add(s1);

ts.add(s2);

ts.add(s3);

ts.add(s4);

ts.add(s5);

ts.add(s6);

ts.add(s7);

ts.add(s8);

// 遍历

for (Student s : ts) {

System.out.println(s.getName() + "---" + s.getAge());

}

}

}

排序的集合有哪些? java

Collection

List

Set

HashSet

TreeSet 是(用二叉树排序)

Map使用key-value来映射和存储数据,Key必须惟一,

其中List和Set继承自Collection接口。

Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。

List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。

Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。

SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。

java中如何对数组和集合进行排序

java中对集合排序,可以使用Collections.sort来进行排序,可以对中文、字母、数字进行排序,当比较的是对象时候,让该类实现comparable接口,示例如下:

Collections.sort(dataMap, new ComparatorMapString, Object() { //排序接口实现方法 @Override public int compare(MapString, Object lhs, MapString, Object rhs) { switch (whichsort) { case System_OpenPosition_Sort_Currency: String d2 = ((String) rhs.get(Instrument)); String d1 = (String) lhs.get(Instrument); if (d2 != null d1 != null) { int flag = d1.compareTo(d2); if (flag == 0) { Double d3 = ((Double) rhs.get(OpenPrice)); Double d4 = (Double) lhs.get(OpenPrice); if (d3 != null d4 != null) { int flag2 = d4.compareTo(d3); if (flag2 == 0) { String d5 = ((String) rhs.get(BuySell)); String d6 = (String) lhs.get(BuySell);//文字排序 if (d5 != null d6 != null) { return d6.compareTo(d5);//返回一个int类型,用来判断是否大于、小于还是等于 } } return d4.compareTo(d3); } } else { return flag; } // return d1.compareTo(d2); }

JAVA中list集合的排序

根据字符串的含义,进行对象化,比如,Student,有三个属性,序号,姓名,分数

注意重写Student的Compareable接口

然后,ListString变成ListStudent students=new ArrayListStudent

然后,遍历list,算出平均分,放入新的SortListStudent

打印结果