導航:首頁 > 編程語言 > 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排序相關的資料

熱點內容
手機文件管理在哪兒新建文件夾 瀏覽:719
加密ts視頻怎麼合並 瀏覽:773
php如何寫app介面 瀏覽:800
宇宙的琴弦pdf 瀏覽:395
js項目提成計算器程序員 瀏覽:942
pdf光子 瀏覽:832
自拍軟體文件夾名稱大全 瀏覽:325
程序員留學移民 瀏覽:51
梁中間部位箍筋加密區 瀏覽:118
頻譜分析pdf 瀏覽:752
樂2怎麼升級安卓70 瀏覽:173
java中獲取日期 瀏覽:506
單片機74hc245 瀏覽:272
美國歷史上的總統pdf 瀏覽:752
程序員脫單實驗室靠不靠譜 瀏覽:460
php中間四位手機號 瀏覽:871
永旺app怎麼樣了 瀏覽:518
壓縮空氣流量計算軟體 瀏覽:651
智慧聊天app怎麼激活 瀏覽:926
一加換機備份到哪個文件夾 瀏覽:737