java中两个list集合如何排序
有两个集合List<Article>list1=newArrayList<Article>();List<Article>list2=newArrayList<Artic...
有两个集合
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
里面有几个属性 ,Article.java如下:
private String title;
private String content;
private Date gxrq; ---->(java.util.Date类型)
现在需要根据 gxrq 进行排序
list1 是从一个表AT1中取出的数据,list2是从另外一个表AT2中取出的数据
请问怎样将这两个集合合成一个集合并且根据 gxrq 进行排序
请各位大侠门帮我写一下排序这个方法,谢谢了。 展开
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
里面有几个属性 ,Article.java如下:
private String title;
private String content;
private Date gxrq; ---->(java.util.Date类型)
现在需要根据 gxrq 进行排序
list1 是从一个表AT1中取出的数据,list2是从另外一个表AT2中取出的数据
请问怎样将这两个集合合成一个集合并且根据 gxrq 进行排序
请各位大侠门帮我写一下排序这个方法,谢谢了。 展开
5个回答
展开全部
首先让你的Article实现Comparable这个接口..
然后根据他的gxrq进行比较..
集合合成的话
list1.addAll(list2)就行了。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
public class Article implements Comparable<Article> {
public static void main(String[] args) {
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
Article a1 = new Article();
a1.setGxrq(new Date(100, 5, 5));
Article a2 = new Article();
a2.setGxrq(new Date(100, 3, 5));
list1.add(a1);
list2.add(a2);
list1.addAll(list2);
Collections.sort(list1);
for(Article a : list1) {
System.out.println(a.getGxrq());
}
}
private String title;
private String content;
private Date gxrq;
public int compareTo(Article arg0) {
return this.gxrq.compareTo(arg0.gxrq);
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getGxrq() {
return gxrq;
}
public void setGxrq(Date gxrq) {
this.gxrq = gxrq;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
然后根据他的gxrq进行比较..
集合合成的话
list1.addAll(list2)就行了。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
public class Article implements Comparable<Article> {
public static void main(String[] args) {
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
Article a1 = new Article();
a1.setGxrq(new Date(100, 5, 5));
Article a2 = new Article();
a2.setGxrq(new Date(100, 3, 5));
list1.add(a1);
list2.add(a2);
list1.addAll(list2);
Collections.sort(list1);
for(Article a : list1) {
System.out.println(a.getGxrq());
}
}
private String title;
private String content;
private Date gxrq;
public int compareTo(Article arg0) {
return this.gxrq.compareTo(arg0.gxrq);
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getGxrq() {
return gxrq;
}
public void setGxrq(Date gxrq) {
this.gxrq = gxrq;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
展开全部
最正统的做法是自定义一个比较器,如下所示
public class ArticleComparator implements Comparator {
public int compare(Object o1, Object o2) {
Article c1 = (Article) o1;
Article c2 = (Article) o2;
if (c1.getGxrq().getTime() > c2.getGxrq().getTime()) {
return 1;
}
return -1;
}
}
主代码这样既可
List<Article> list1 = new ArrayList<Article>();
/*.....添加数据.......*/
List<Article> list2 = new ArrayList<Article>();
/*.....添加数据.......*/
list1.addAll(list2);
ArticleComparator articleComparator = new ArticleComparator();
Collections.sort(list1, articleComparator);
public class ArticleComparator implements Comparator {
public int compare(Object o1, Object o2) {
Article c1 = (Article) o1;
Article c2 = (Article) o2;
if (c1.getGxrq().getTime() > c2.getGxrq().getTime()) {
return 1;
}
return -1;
}
}
主代码这样既可
List<Article> list1 = new ArrayList<Article>();
/*.....添加数据.......*/
List<Article> list2 = new ArrayList<Article>();
/*.....添加数据.......*/
list1.addAll(list2);
ArticleComparator articleComparator = new ArticleComparator();
Collections.sort(list1, articleComparator);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将两个list合并
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
list1.addAll(list2);
Collections.sort(list,new ReverseSort());
//自定义反向排序比较器
class ReverseSort implements Comparator{
public int compare(Object obj1,Object obj2) {
Article user1 = (Article)obj1;
Article user2 = (Article)obj2;
return -user1.gxrq.compareTo(user2.gxrq);
}
}
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
list1.addAll(list2);
Collections.sort(list,new ReverseSort());
//自定义反向排序比较器
class ReverseSort implements Comparator{
public int compare(Object obj1,Object obj2) {
Article user1 = (Article)obj1;
Article user2 = (Article)obj2;
return -user1.gxrq.compareTo(user2.gxrq);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
放到一个list中排序就可以了
List<Article> list = new ArrayList<Article>();
list.addAll(list1);
list.addAll(list2);
然后2层循环就可以了
List<Article> list = new ArrayList<Article>();
list.addAll(list1);
list.addAll(list2);
然后2层循环就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List<String> list = new ArrayList<String>();
list.add("6");
list.add("5");
list.add("");
list.add("3");
list.add("1");
list.add("2");
list.add("4");
Collections.sort(list);
list.add("6");
list.add("5");
list.add("");
list.add("3");
list.add("1");
list.add("2");
list.add("4");
Collections.sort(list);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询