漢字をソートする2つの方法
バックグラウンド
並べ替えによってデータベースクエリの順序でデータを直接並べ替える場合、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());