1. 程式人生 > >java 按照集合中某一箇中文值進行排序

java 按照集合中某一箇中文值進行排序

例如某一個集合如下:如果想按照userName的首字母進行排序,優先順序:特殊字元、數字、字母、中文

{
    "code": 200,
    "msg": "成功",
    "result": [
        {
            "id": 923,
            "userName": "test",
            "type": 7
        },
        {
            "id": 926,
            "userName": "仲",
            "type": 7
        },
        {
            "id": 927,
            "userName": "啊",
            "type": 7
        },
        {
            "id": 928,
            "userName": "**好",
            "type": 7
        },
        {
            "id": 929,
            "userName": "#怎麼說",
            "type": 7
        },
        {
            "id": 930,
            "userName": "@163.com",
            "type": 7
        },
        {
            "id": 934,
            "userName": "12ze",
            "type": 7
        }
    ]
}

方法程式碼如下:其中saleUserVOS是儲存的其中的物件集合,userName為其中物件的屬性 

Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
saleUserVOS.sort((o1, o2) -> ((Collator) com).compare(o1.getUserName(), o2.getUserName()));

排序後返回結果如下:

{
    "code": 200,
    "msg": "成功",
    "result": [
        {
            "id": 930,
            "userName": "@163.com",
            "type": 7
        },
        {
            "id": 928,
            "userName": "**好",
            "type": 7
        },
        {
            "id": 929,
            "userName": "#怎麼說",
            "type": 7
        },
        {
            "id": 934,
            "userName": "12ze",
            "type": 7
        },
        {
            "id": 923,
            "userName": "test",
            "type": 7
        },
        {
            "id": 927,
            "userName": "啊",
            "type": 7
        },
        {
            "id": 926,
            "userName": "仲",
            "type": 7
        }
    ]
}