MySQLは中国語の文字属性をソートします/ストリームストリームは中国語の文字属性をソートします

バックグラウンド

並べ替えによってデータベースクエリの順序でデータを直接並べ替える場合、field属性がvarcharの場合、並べ替えの効果は理想的ではないことがわかります。次の2つの方法を要約することを学ぶ

mysqlソートフィールドは漢字です

CONVERT関数は、クエリステートメントの一部の順序で使用できます。次に例を示します。
Order By CONVERT (name USING gbk) DESC

ストリームは漢字の属性をソートします

コレクションがJSONArrayの場合

array = array.stream().sorted(Comparator.comparing(obj -> JSONObject.parseObject(JSON.toJSONString(obj)).getString(orderParamName), Collator.getInstance(Locale.CHINA)))
						.collect(Collectors.toCollection(JSONArray::new));

コレクションがオブジェクトの場合
フィールドにnull値がある場合、nullsFirstnullsLastで処理する必要があります

qqList = qqList.stream().sorted(Comparator.comparing(TbDealerQq::getNickName,Comparator.nullsFirst(String::compareTo))).collect(Collectors.toList());```

キャラクターはCollator.getInstance(Locale.CHINA)治療が必要です

qqList = qqList.stream().sorted(Comparator.comparing(TbDealerQq::getNickName,Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());

おすすめ

転載: blog.csdn.net/qq_37126480/article/details/112540869