导航:首页 > 编程语言 > javacomparator排序

javacomparator排序

发布时间:2022-09-22 02:59:33

java排序comparator

Comparator的compare是自定义排序实现算法,compare()返回一个int值。
当int < 0 则 o1 < o2;
int = 0 o1 = o2;
int > 0 o1 > o2;
compare()实现的是一种排序规则,sort()是排序的动作,如果sort(list,compare实现)则表示按自定义的排序算法去排序,如果不指定会按自然排序。
list本事是线性、有序的集合,在元素长度相同时会安装原顺序排位。
所以[BigBossm, ben, jazz, adm, Marry, bill, Xiloer, Kate, killer] 排序后会得到
[ben, adm, jazz, bill, Kate, Marry, Xiloer, killer, BigBossm]
ben最短切位置靠前,所以排完是第一个元素。
o2.length()-o1.length()
[BigBossm, Xiloer, killer, Marry, jazz, bill, Kate, ben, adm]

⑵ Java编写程序实现Comparator接口,实现字符串按 降序排序怎么弄

Comparator升序降序实现 int compare(Object o1, Object o2) 返回一个基本类型的整型 1) 如果要按照升序排序, 则o1 小于o2,返回-1(负数),相等返回0,01大于02

⑶ java Comparator中的返回值和排序有什么关系啊,求解释!!!!!

负数代表左值小于右值,排在上面
正数代表左值大于右值,排在下面
0代表左值等于右值,排在上面
可以这样理解:排序就是比较谁大谁小,将小的放在前面,大的放在后面。例如当返回负数的时候,表明第一个数应该排在第二个数的上面。

⑷ JAVA comparator接口 字符串数组排序



importjava.util.Arrays;
importjava.util.Comparator;

publicclassYuGiOh
{
publicstaticvoidmain(String[]args)
{
String[]strs={"qwe","asfa","qfwagaa","rfbu","a","hlelllp"};
Arrays.sort(strs,newComparator<String>()
{
@Override
publicintcompare(Stringo1,Stringo2)
{
if(o1.length()>o2.length())
{
return1;
}
elseif(o1.length()<o2.length())
{
return-1;
}
else
{
return0;
}
}
});
System.out.println(Arrays.toString(strs));
}
}

⑸ java里comparator怎么给字符串排序

是排序字符串里面的字符吗,先转成数组,

char[]
toCharArray()
Converts this string to a new character array.

再使用 java.util.Arrays 的sort方法
static <T> void sort(T[] a,
Comparator<? super T> c)
Sorts the specified array of objects according to the order inced by
the specified comparator.

⑹ 高手给解决一下,java Comparator对象比较多个属性排序

外层if比较年度,内层if比较季度

⑺ 请教:JAVA中,comparator接口如何对double型数据进行排序。

返回值是int
-1,0或1。1表示第一个数比第二个数大,0表示相等,-1表示第一个数比第二个数小。这个int跟你要比较的数值类型没关系。举例:
import
java.util.Comparator;
public
class
Test1
implements
Comparator
{
public
int
compare(Double
o1,
Double
o2)
{
return
o1.compareTo(o2);
}
public
static
void
main(String[]
args)
{
Test1
t
=
new
Test1();
double
i=10,j=9;
System.out.println(t.compare(j,
i));
}
}

⑻ Java Arraylist 如何使用 Comparator排序

用Comparator是策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。
比如:你想对整数采用绝对大小来排序,Integer是不符合要求的,你不需要去修改Integer类(实际上你也不能这么做)去改变它的排序行为,只要使用一个实现了Comparator接口的对象来实现控制它的排序就行了。

示例代码如下:

//AbsComparator.java
import java.util.*;
public class AbsComparator implements Comparator {
public int compare(Object o1, Object o2) {
int v1 = Math.abs(((Integer)o1).intValue());
int v2 = Math.abs(((Integer)o2).intValue());
return v1 > v2 ? 1 : (v1 == v2 ? 0 : -1);
}
}

//Test.java
import java.util.*;
public class Test {
public static void main(String[] args) {

//产生一个20个随机整数的数组(有正有负)
Random rnd = new Random();
Integer[] integers = new Integer[20];
for(int i = 0; i < integers.length; i++)
integers[i] = new Integer(rnd.nextInt(100) * (rnd.nextBoolean() ? 1 : -1));

System.out.println("用Integer内置方法排序:");
Arrays.sort(integers);
System.out.println(Arrays.asList(integers));

System.out.println("用AbsComparator排序:");
Arrays.sort(integers, new AbsComparator());
System.out.println(Arrays.asList(integers));
}
}

阅读全文

与javacomparator排序相关的资料

热点内容
苹果app如何复制到另一个手机 浏览:834
javasession超时 浏览:831
易金通app怎么更改手机号 浏览:493
plc数控编程的方法 浏览:989
android只能输入数字和字母 浏览:120
文件夹如何删除页码 浏览:993
服务器被封了有什么后果 浏览:980
光大手机app怎么零存整取 浏览:416
cshtml需要编译 浏览:580
安卓收不到塞班热点怎么办 浏览:292
福利姬app怎么玩 浏览:183
vs增加编译模式 浏览:972
微信聊天里面的视频保存在哪个文件夹 浏览:920
自己的云服务器租赁费用 浏览:424
ipad查看pdf 浏览:130
大话2什么是四上服务器 浏览:374
https二次加密 浏览:791
爬虫源码中没有想要的数据 浏览:915
app挂号怎么挂号 浏览:64
为什么安卓那么费电 浏览:744