社区
Java SE
帖子详情
按值排序问题
feng911
2006-12-05 01:08:09
如:
部品A 10
部品B 9
部品C 8
部品D 11
部品E 8
如何得到这样的结果:
部品C 8
部品E 8
部品B 9
部品A 10
部品D 11
前面部份是不重复的,后面数值部份可能重复,数值越小的排在前面,数值相同的哪个先都可以
...全文
359
11
打赏
收藏
按值排序问题
如: 部品A 10 部品B 9 部品C 8 部品D 11 部品E 8 如何得到这样的结果: 部品C 8 部品E 8 部品B 9 部品A 10 部品D 11 前面部份是不重复的,后面数值部份可能重复,数值越小的排在前面,数值相同的哪个先都可以
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taojiayu
2006-12-05
打赏
举报
回复
mark
figoren
2006-12-05
打赏
举报
回复
//排序
Collections.sort(epiList, new epiComparator(field, flag));
private class epiComparator implements Comparator
{
private String field;
private String flag;
public epiComparator(String field, String flag)
{
this.field = field;
this.flag = flag;
}
/*
* 方法名称:compare
* 内容摘要:实现比较方法的地方 返回 1 则 a.b交换 -1 a,b不变 0 不变
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
public int compare(Object o1, Object o2)
{
EpibolyObject epi1 = new EpibolyObject();
EpibolyObject epi2 = new EpibolyObject();
epi1 = (EpibolyObject) o1;
epi2 = (EpibolyObject) o2;
//比较字段的大小
int big = 0;
//根据升降确定返回值
int order = 0;
if ("epiComName".equals(field))
{
// > return 1 < return -1 == return 0
big = epi1.getEpiComName().compareTo(epi2.getEpiComName());
}
else if ("epiNo".equals(field))
{
big = epi1.getEpiNo().compareTo(epi2.getEpiNo());
}
else if ("epiName".equals(field))
{
big = epi1.getEpiName().compareTo(epi2.getEpiName());
}
if ("asc".equals(flag))
{
order = big;
}
else if ("desc".equals(flag))
{
order = -big;
}
return order;
}
}
fool_leave
2006-12-05
打赏
举报
回复
class Node
implements Comparator {
public String s1;
public String s2;
public int compare(Object object, Object object1) {
Node n1=(Node)object;
Node n2=(Node)object1;
return n1.s2.compareTo(n2.s2);
}
public boolean equals(Object object) {
return false;
}
}
//排序
ArrayList list=new ArrayList();
//list里面添加Node节点
Object[] v= list.toArray();
Arrays.sort(v);
然后看看v的顺序如何
hdhmail2000
2006-12-05
打赏
举报
回复
在后面加一个计数器的数字就可以了,不影响的
如81,82。。。。。。。
feng911
2006-12-05
打赏
举报
回复
TO hdhmail2000(禅剑飞雪)
这个例子是按KEY进行排序的,我这个问题不能把数值作为KEY。因为有重复的
feng911
2006-12-05
打赏
举报
回复
TO hdhmail2000(禅剑飞雪)
这个例子是按KEY进行排序的,我这个问题如果不能把数值作为KEY。因为有重复的
hdhmail2000
2006-12-05
打赏
举报
回复
import java.util.Collection;
import java.util.Iterator;
import java.util.SortedMap;
import java.util.TreeMap;
/**
* @author www.inspiresky.com
*
*/
public class TestSort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeMap map = new TreeMap();
for(int i=0; i<10; i++) {
String s = ""+(int)(Math.random()*1000);
map.put(s,s);
}
map.put("abcd","abcd");
map.put("Abc", "Abc");
map.put("bbb","bbb");
map.put("BBBB", "BBBB");
map.put("北京","北京");
map.put("中国","中国");
map.put("上海", "上海");
map.put("厦门", "厦门");
map.put("香港", "香港");
map.put("碑海", "碑海");
Collection col = map.values();
Iterator it = col.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
feng911
2006-12-05
打赏
举报
回复
希望各位能详细举个例子,谢谢。
awusoft
2006-12-05
打赏
举报
回复
在类里实现Comparable接口里的compareTo(E o)方法
hdhmail2000
2006-12-05
打赏
举报
回复
保存到TreeMap中就自动排序了
fool_leave
2006-12-05
打赏
举报
回复
Arrays.sort()
现成的排序
你需要做的就是写一个Comparator来比较大小
先看看Arrays.sort方法吧,很简单的
使用TreeMap
按值
排序
遇到的
问题
如果我们需要一个有序的Map,我们会使用TreeMap进行存储。TreeMap默认是按照key值升序进行
排序
的,如数字、ASCII。 如果我们需要对TreeMap
按值
进行
排序
的话,可以实例化Comparator接口,在TreeMap的构造方法中当作参数传入。这里遇到了
问题
:当插入TreeMap的两条数据value值一样的时候,后一条数据会覆盖前一条数据。 通过查资料
快速
排序
与寻找第k小值
问题
快速
排序
中的三种分区方法 Partition 以及快排的应用
MySQL中order by
排序
遇到NULL值的
问题
遇到
问题
: 今天在开发中遇到一个有点奇葩的
排序
,两个表两个字段,加上一个null值
排序
,更奇葩的是两个表的两个字段一个是数字,一个是中文,所以用了field关键字进行自定义
排序
.  我们知道NULL的意思表示什么都不是,或者理解成“未知”也可以,它与任何值比较的结果都是false, 我想把null放在后面,可是因为null值的特殊,网上搜
mysql中空值对
排序
的影响_mysql中null值的
排序
问题
分析_MySQL
bitsCN.commysql中null值的
排序
问题
分析如下表t_user:name agezhangsan 1lisi NULLwangwu 2执行一下sql:Sql代码select * from t_user order by age;name agelisi NULLzhangsan 1wangwu 2实际上我们是想将没有填写age的记录放在最后,我们可以Sql代码select * from...
mysql对null
排序
_mysql中null值的
排序
问题
分析_MySQL
bitsCN.commysql中null值的
排序
问题
分析如下表t_user:name agezhangsan 1lisi NULLwangwu 2执行一下sql:Sql代码select * from t_user order by age;name agelisi NULLzhangsan 1wangwu 2实际上我们是想将没有填写age的记录放在最后,我们可以Sql代码select * from...
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章