1. 程式人生 > >按字母排序問題

按字母排序問題

字母排序問題

問題產生

網路請求引數需要按照a-z排序,客戶端用Arrays.sort實現,而伺服器用TreeMap實現,最後結果不一致。

排序函式原始碼

/**
 * list按a-z排序
 *
 * @param 請求引數的list
 * @return 排序後的結果
 */
public static String getSortStr(List<String> list) {
    String result = "";
    String[] arrayList = list.toArray(new String[list.size()]);
    Arrays.sort(arrayList, String.CASE_INSENSITIVE_ORDER);
    for
(int i = 0; i < arrayList.length; i++) { if (i > 0) result += "&"; result += arrayList[i]; } return result; } /** * 使用TreeMap來排序 * * @param 請求引數的list * @return 排序後的結果 */ public static String getSortStr2(List<String> list) { String result = ""
; TreeMap<String, String> tree = new TreeMap<String, String>(); for (int i = 0; i < list.size(); i++) { tree.put(list.get(i), "" + i); } for (Map.Entry<String, String> entry : tree.entrySet()) { if (!"".equals(result)) result += "&"
; result += entry.getKey(); } return result; }

排序結果對比結論

  • Arrays.sort(arrayList, String.CASE_INSENSITIVE_ORDER); 大小寫不敏感, 嚴格按照a-z排序;
  • Arrays.sort(arrayList)和Tree Map排序結果相同,按字母的ASCII編碼大小排序,優先順序A>Z>a>z。

相關推薦

ItemDecoration詳解以及用ItemDecoration實現字母排序列表

首先看看實現的效果 可以看出要實現上面效果,有三個步驟: 1.漢字轉化為拼音,並且根據首字母排序 2.用ItemDecoration實現字母行的顯示 3.自定義實現右側的按字母導航欄 當然重點講講ItemDecoration的實現。都知道RecyclerView本

005_015 Python 人名字母排序,首字母分組

程式碼如下: #encoding=utf-8 print '中國' #人名按字母排序,首字母分組 import itertools import itertools def groupnames(name_iterable): sorted_names = sorted(

Android ListView 字母排序要求每個拼音內部子類字母在上,漢字在下再排序

最近碰到個需求,要求對已經按字母排完序的ListView,再按照漢字字母進行二級排序,下面是一種思路, jmd_sbook = new ArrayList<>(); jmd_sbook_

html5仿手機通訊錄字母排序及搜尋功能

1.實現聯絡人字母排序,點選字母跳轉顯示聯絡人組目錄;2.實現聯絡搜尋,動態顯示符合查詢的聯絡人;詳情見資源:https://download.csdn.net/download/huicaipa1943/10304104效果圖如下:<!DOCTYPE HTML PUB

字母排序問題

字母排序問題 問題產生 網路請求引數需要按照a-z排序,客戶端用Arrays.sort實現,而伺服器用TreeMap實現,最後結果不一致。 排序函式原始碼 /** * list按a

對Map裡面的key和value字母排序

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u

將陣列按照拼音排序,並字母排序

按拼音排序:var resultArray = arr.sort( //陣列按照abcd排列 function compareFunction(param1, param2) { return para

ios字母排序的通訊錄

突然想實現一個按照好友姓名的頭字母排序的通訊錄,然而想了想大致需要實現的技術點。 1:我需要將儲存好友姓名的陣列變成一個儲存好友姓名首字母的陣列,並且是按照順序的。 2:需要將儲存好友姓名的陣列按照同姓氏化為一個組方法變成若干個組,每組有若干個物件,所以就是變成若干個陣列,

將包含中文的數組拼音首字母排序

color 拼音首字母排序 包含 utf-8 排序 pan col sort nbsp foreach ($array as $key=>$value) { $new_array[$key] = iconv(‘UTF-8‘, ‘GBK‘

Java編程實現中英混合字符串數組字母排序的方法

數組 鍛煉 呵呵 indexof pinyin file 附件 col 翻轉 在Java中對於字符串數組的排序,我們可以使用Arrays.sort(String[])方法很便捷的進行排序。例如: ? 1 2 3 4 5 6 7 String[] arra

統計字串中各英文字母出現的頻率並頻度排序

直接上程式碼 public class StringTest {          /**      * 任意給定英文字串,求出各個字母出現的次數,並按照字母出現的次數從高到低排序。   

js中文字母排序

var array = ['武漢', '北京', '上海', '天津','','am','pam','1213','123']; var resultArray = array.sort( function compareFunction(param1, param2) {

大小寫字母和數字字典排序

大小寫字母和數字按字典排序 問題 問題 一、請對一組字串進行排序,字串由大小寫字母和數字組成,需要滿足以下比較規則: 1、長度不同時,長度較短在排前面; 2、長度相同時,按照字典順序排列(AaBb - Zz,0-9順序),即大寫字母在小寫字母前,數

三道習題(1、將單詞表中由相同字母組成的單詞歸成一類,每類單詞按照單詞的首字母排序,並 #每類中第一個單詞字典序由大到小排列輸出各個類別。 #輸入格式:字典序由小到大輸入若干個單詞,每個單詞佔一行,以end結束輸入。)

#coding=gbk ''' 1、將單詞表中由相同字母組成的單詞歸成一類,每類單詞按照單詞的首字母排序,並按 #每類中第一個單詞字典序由大到小排列輸出各個類別。 #輸入格式:按字典序由小到大輸入若干個單詞,每個單詞佔一行,以end結束輸入。 #cinema #iceman #maps #spam #a

PHP根據字串拼音首字母進行排序/PHP通訊錄字母A-Z排序

思路: 1.先獲取字串第一個字串並轉化成 ASCII 值然後再轉換成: A B C...Z 2.然後將陣列中的所有值通過 A-Z進行歸類例如:A=>陣列,B=>陣列 3.在進行陣列按照鍵名進行升序或者降序排列 ksort或者asort(升序) 具體程式碼如下

Android獲取手機聯絡人匹配使用者表並字母A-Z排序展示

1、前言 最近在做公司專案的時候遇到一個新增手機聯絡人的需求,主要有以下幾個功能點: 讀取聯絡人:讀取使用者手機上的通訊錄裡的聯絡人列表 好友排序:按照拼音順序對好友進行排序,相容英文數字符號等 字母索引:右側字母導航條,既可拖動也可點選,聯動ListVi

通訊錄之漢字首字母排序-java

最近開發手機端OA系統通訊錄時遇到了用漢字首字母排序的問題,各種谷歌後發現了一個輪子pinyin4J,這個輪子是可以將漢字轉換成字母拼音,個人覺得很好用,完美的解決了排序的問題,分享一下。 原部落格地址 一.工具介紹 pinyin4j是一個支援將簡

vue移動端城市列表字母排序元件包,有npm包,可直接下載使用

初衷,為各使用相關元件的小夥伴寫更少的相關程式碼實現功能,原始碼在我的被另一篇博文裡有,有興趣的可以去研究,使用過程中有問題的請即時反饋,謝了!qq(微信)591339209,有其他常用到的元件也可以反饋給我,酌情封裝!另外要是這個元件還有什麼需要優化,或者有哪裡使用還不方便

android獲取手機聯絡人並且字母進行排序

public static ArrayList<LinkManItem> getMobileLinkManList(Context context) {    ArrayList<LinkManItem> linkManList = new ArrayList<LinkManIt

通訊錄 中文名字 拼音首字母 排序

function address_book(url, id, src, name) {// 引數說明 --> (資料介面, 人員id欄位名 ,圖片地址欄位名,名字欄位名)    var name_list = '';    var letter_reg = /^[A-Z]$/;     // 大寫字母