java中一个List集合,放的都是从不同的表中查出来的数据,请问我怎样可以根据其中的一个字段进行list排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中一个List集合,放的都是从不同的表中查出来的数据,请问我怎样可以根据其中的一个字段进行list排序相关的知识,希望对你有一定的参考价值。
用 Collections.sort()排序,给你个例子,你参考下
import java.util.ArrayList;import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class $
public static void main(String[] args)
List<Bean> data = new ArrayList<Bean>();
data.add(new Bean("aaaaa", 20));
data.add(new Bean("bbbbb", 10));
System.out.println("排序前:" + data);
Collections.sort(data, new Comparator<Bean>()
public int compare(Bean o1, Bean o2)
return o1.getName().compareTo(o2.getName());
);
System.out.println("按name升序:" + data);
Collections.sort(data, new Comparator<Bean>()
public int compare(Bean o1, Bean o2)
return o2.getName().compareTo(o1.getName());
);
System.out.println("按name降序:" + data);
Collections.sort(data, new Comparator<Bean>()
public int compare(Bean o1, Bean o2)
return o1.getAge() - o2.getAge();
);
System.out.println("按age升序:" + data);
Collections.sort(data, new Comparator<Bean>()
public int compare(Bean o1, Bean o2)
return o2.getAge() - o1.getAge();
);
System.out.println("按age降序:" + data);
class Bean
private String name;
private int age;
public Bean(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;
public String toString()
return "[" + name + "," + age + "]";
追问
我的List中放的不是一个实体类啊,而是从多张表中查询出来的数据
参考技术A 把这个list集合中的所有元素,全部都把这个元素的要比较字段的值取出来放到数组里边,然后对这些值进行排序,再对应到list集合即可本回答被提问者采纳 参考技术B 需要自己写一个比较器
假设类型是
class 你的类型
public 字段类型 字段名;//这里为了方便设置成public 千万别学哦~
自己写的比较器:
Comparator<你的类型> com=new Comparator<你的类型>()
public int compare(你的类型 left,你的类型 right)
自己定义比较规则;
如果 "小于"则返回-1 等于返回0 "大于"返回1;
//至于怎样算是 "小于" 靠你自己定义了
;
java将数据库中菜单表中内容转化成一个导航树
数据库中字段:
menuId parentMenuId menuName link等
首先我们肯定是将所有的菜单从数据库中查到一个List中,下面我们需要对这个数组进行处理,将这个list转化成树的格式
原来的时候处理都很麻烦,需要去做递归操作,类似这种思路
1、找到根菜单
2、根据根菜单的id去查找整个数组中parentId为这个id的对象,放到list中
3、对于根组件的子菜单进行2操作,知道找不到子菜单为止
这样的话需要每次都需要从整个数组中查找,不管某一个是否已经经过处理了。
改进点,jdk8中可以通过list的方法做分组操作
stuList.stream().collect(Collectors.groupingBy(Student::getStuName));
list对象 list中对象类型 分组的方法
通过这个方法就可以将一个list转化成键为分组字段,值为分到该组中对象的list 的map类型
这时候你就可以递归起来了,直接找到把那个list往里面插,少了很多代码。
以上是关于java中一个List集合,放的都是从不同的表中查出来的数据,请问我怎样可以根据其中的一个字段进行list排序的主要内容,如果未能解决你的问题,请参考以下文章
怎么用Qt的TableView来显示数据,数据有些来自MySQL的表中(多张不同的表),并且有些数据并不是从MySQL取