java list根據元素字段進行優先順序排序

2021-09-05 11:27:03 字數 1341 閱讀 7794

在做乙個油田系統時遇到的需要根據優先順序排序的問題

現有乙個預算單的集合list,要根據歷史單據做新的預算單據,但在做之前要查到之前的單據進行修改另存為新的單據,查詢的過程是根據預算單的幾個引數進行優先順序排序查詢,以便查詢到最符合現在要求的歷史單據作為修改模板。

預算單據實體:如下

@column(name = "well_type")

private string welltype;

@column(name = "well_area")

private string wellarea;

@column(name = "well_diff")

private string welldiff;

@column(name = "well_casing")

private string wellcasing;

@column(name = "work_type")

private integer welldeep;

現在需要以這五個條件做優先度排序:

welldiff>wellarea>welltype>wellcasing>worktype

1、引入優先順序分數的概念:

預算實體中新增score欄位:

根據優先順序進行分數配置:

worktype:1

wellcasing:2

welltype:4

wellarea:8

welldiff:16

每個優先順序的配分是所有相對低優先順序的配分之和再加1,這樣保證了高優先順序字段符合查詢條件時一定會比低優先順序符合條件時的配分更高。

然後再根據配分排序。list的排序利用實體類實現comparable介面來實現。

1、實體

繼承介面

引入分數字段,不必存資料庫

實現比較方法

分數降序排列:

分數公升序排列:

2、排序

java list 根據兩個字段排序

首先建立乙個定義排序規則的類,實現comparator介面 用來定義比較規則的介面 實現compare方法,來定義規則 class sort implements comparator else if t1.sort t2.sort else if t1.pubuli ime t2.pubuli i...

JAVA List 移除元素

arraylistlist newarraylist list.add one list.add two list.add two list.add two list.add two for inti 0 iif list.get i equals two system.out.println li...

java list移除null元素

listls new arraylist list.add 1 list.add 2 list.add null list.add 3 list.add null list.add 4 如果只需移除第乙個null,那麼直接ls.remove null 如果要全部移除,可以這樣 liste new a...