第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 使用 Array.sort() 對字符串數(shù)組進行排序,就像 python 使用

Java 使用 Array.sort() 對字符串數(shù)組進行排序,就像 python 使用

喵喔喔 2023-06-13 11:15:32
我偶爾學習Java。作為一個python背景的人,我想知道sorted(iterable, key=function)java中是否存在類似python的東西。例如,在 python 中,我可以對按元素的特定字符排序的列表進行排序,例如>>> a_list = ['bob', 'kate', 'jaguar', 'mazda', 'honda', 'civic', 'grasshopper']>>> s=sorted(a_list) # sort all elements in ascending order first>>> s['bob', 'civic', 'grasshopper', 'honda', 'jaguar', 'kate', 'mazda'] >>> sorted(s, key=lambda x: x[1]) # sort by the second character of each element['jaguar', 'kate', 'mazda', 'civic', 'bob', 'honda', 'grasshopper'] Soa_list首先按升序排序,然后按每個元素的 1 個索引(第二個)字符排序。我的問題是,如果我想在 Java 中按特定字符按升序對元素進行排序,我該如何實現(xiàn)?下面是我寫的 Java 代碼:import java.util.Arrays;public class sort_list {  public static void main(String[] args)  {    String [] a_list = {"bob", "kate", "jaguar", "mazda", "honda", "civic", "grasshopper"};    Arrays.sort(a_list);    System.out.println(Arrays.toString(a_list));}  }}結果是這樣的:[bob, civic, grasshopper, honda, jaguar, kate, mazda] 這里我只實現(xiàn)了數(shù)組升序排序。我希望 java 數(shù)組與 python 列表結果相同。Java 對我來說是新手,所以任何建議都將不勝感激。
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經(jīng)驗 獲得超4個贊

使用自定義比較器比較兩個字符串。

Arrays.sort(a_list, Comparator.comparing(s -> s.charAt(1)));

這通過字符串的第二個字符比較兩個字符串。

這將導致

[kate, jaguar, mazda, civic, bob, honda, grasshopper]

我看到了jaguar,并且kate在你的輸出中切換了。我不確定 Python 如何排序兩個相等的字符串。穩(wěn)定排序。Arrays.sort_

這種排序保證是穩(wěn)定的:相等的元素不會因為排序而重新排序。


查看完整回答
反對 回復 2023-06-13
?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

您可以使用Comparator.comparing對列表進行排序

Arrays.sort(a_list, Comparator.comparing(e -> e.charAt(1)));

如果您想使用 Java Stream API 在新列表中進行排序和收集

String [] listSorted =  Arrays.stream(a_list)
                              .sorted(Comparator.comparing(s -> s.charAt(1)))
                              .toArray(String[]::new);


查看完整回答
反對 回復 2023-06-13
?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

您可以向 提供一個 lambda 函數(shù)Arrays.sort。對于您的示例,您可以使用:

Arrays.sort(a_list,?(String?a,?String?b)?->?a.charAt(1)?-?b.charAt(1));

假設您首先按字母順序(使用 )對數(shù)組進行了排序,Arrays.sort(a_list)這將為您提供所需的結果:

['jaguar',?'kate',?'mazda',?'civic',?'bob',?'honda',?'grasshopper']


查看完整回答
反對 回復 2023-06-13
  • 3 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號