Java中如何对集合排序Java内建java集合排序代码的排序(冒泡)java集合排序代码:Java集合有两个实现的工具类java集合排序代码,Collections和Arrays 。Collections针对集合类型 。Arrays针对数组 。只需要一个为java集合排序代码你排序需要的定制的Comparator或Comparable的实现java集合排序代码,将其作为参数传给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的list集合如何根据对象中的某个字段排序下面java集合排序代码的代码是根据学生年龄排序学生list java集合排序代码的一个例子java集合排序代码:
import java.util.ArrayList;
import java.util.List;
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
@Override
public String toString() {
return "Perosn [name="name", age="age"]";
}
}
public class App {
public static void main(String[] args) {
ListStudent students = new ArrayList();
students.add(new Student("abc", 12));
students.add(new Student("bcd", 20));
students.add(new Student("cde", 17));
students.add(new Student("def", 25));
students.add(new Student("efg", 15));
students.sort((x, y) - Integer.compare(x.getAge(), y.getAge()));
for (Student stu : students) {
System.out.println(stu);
}
}
}
运行结果:
java中如何对数组和集合进行排序java中对集合排序,可以使用Collections.sort来进行排序,可以对中文、字母、数字进行排序,当比较的是对象时候,让该类实现comparable接口,示例如下:
Collections.sort(dataMap, new ComparatorMapString, Object() {//排序接口实现方法@Overridepublic 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 != nulld1 != null) {int flag = d1.compareTo(d2);if (flag == 0) {Double d3 = ((Double) rhs.get(OpenPrice));Double d4 = (Double) lhs.get(OpenPrice);if (d3 != nulld4 != null) {int flag2 = d4.compareTo(d3);if (flag2 == 0) {String d5 = ((String) rhs.get(BuySell));String d6 = (String) lhs.get(BuySell);//文字排序if (d5 != nulld6 != null) {return d6.compareTo(d5);//返回一个int类型,用来判断是否大于、小于还是等于}}return d4.compareTo(d3);}} else {return flag;}// return d1.compareTo(d2);}
【java集合排序代码 javaset集合排序】java集合排序代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaset集合排序、java集合排序代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 反贪风暴在什么电视台播,反贪风暴几点播出
- 电商如何签订快递,电商如何签订快递合同
- 游戏动作玩家名字,游戏 动作
- mysql数据库怎么件 mysql数据库
- 业主微信群如何推广,在业主群里怎么做业务推广
- 我不下载,我不下载用英语怎么说
- sqlserver时间条件,sqlserver 时间条件
- c语言程序中主函数个数 c语言程序中主函数个数怎么表示
- 电脑qq怎么设置群标签,电脑怎么设置群标签名字