集合的使用

2021-10-09 06:21:56 字數 3671 閱讀 4132

要求:

1)addrecord(userid, projectid, price)表示使用者userid 給工程 projectid 投標 price。若記錄中userid 給工程projectid 投標,則不加入該記錄

2)updaterecord(userid, projectid, price)表示更新使用者userid 給工程 projectid 的投標price。若記錄中沒有userid 給工程 projectid的投標,則不更新

3)removerecore(userid, projectid)表示刪除使用者 userid給工程 projectid的投標

4)queryrecord(projectid, price)表示查詢工程projectid中投標金額大於price的結果中,price最小的一條記錄。若大於price的最小price有多條記錄,則返回最早投標的那條記錄。注意:addrecord和updaterecord都會更新記錄的時間

涉及到的知識點

一、map的實現類hashmap、linkedhashmap、treemap什麼時候使用?

二、treemap中的物件按照key排序、物件按照value排序

// 根據key值降序排序

private

static comparator

comparator =

newcomparator

()else

if(o1 > o2)

else}}

;// 在定義treemap時指定比較器

private

static map

map =

newtreemap

<

>

(comparator)

;

map

resultmap =

newlinkedhashmap

<

>()

;// 自定義比較器,根據entry中的key值公升序排序

private

static comparator

> comparator =

newcomparator

>()

else

if(o1.

getvalue()

> o2.

getvalue()

)else}}

;// 將map轉換為list

list

> list =

newarraylist

<

>

(resultmap.

entryset()

);// 使用collections.sort對list中的物件按照value值進行排序

collections.

sort

(list, comparator)

;// 遍歷取出最小value值對應的key

for(map.entry

三、如果hashmap中的key是物件,如何實現新增key重複的物件?

class

project

@override

public

boolean

equals

(object o)if(

!(o instanceof

project))

project project =

(project) o;

return

getuserid()

== project.

getuserid()

&&getprojectid()

== project.

getprojectid()

;}@override

public

inthashcode()

}

**實現
public

class

three

// 儲存記錄

private

static hashmap

record =

newlinkedhashmap

<

>()

;// 定義key物件

static

class

project

// 重寫equals方法

@override

public

boolean

equals

(object o)if(

!(o instanceof

project))

project project =

(project) o;

return

getuserid()

== project.

getuserid()

&&getprojectid()

== project.

getprojectid()

;}@override

public

inthashcode()

public

intgetuserid()

public

void

setuserid

(int userid)

public

intgetprojectid()

public

void

setprojectid

(int projectid)

}public

static

void

addtender

(int userid,

int projectid,

int price)

}public

static

intupdatetender

(int userid,

int projectid,

int price)

return updateresult;

}public

static

intremovetender

(int userid,

int projectid)

return deleteresult;

}// 自定義按value值公升序的比較器

private

static comparator

> comparator =

newcomparator

>()

else

if(o1.

getvalue()

> o2.

getvalue()

)else}}

;public

static

intquerytender

(int projectid,

int price)

else}}

int result =-1

;if(!resultmap.

isempty()

)}return result;

}}

集合的使用

集合的特點 集合是乙個無序的,不重複的陣列組合 1 去重,找出2個列表裡重複的項。把乙個列表變成集合就自動去重了。2 關係測試,測試兩組資料之前的交集 差集 並集等關係 常用操作 set 字串 就把列表轉換成集合。注意集合的大括號組成 像字典,但是不是 這種寫法,是直接把列表變成集合 取集合的交集 ...

集合的使用

優先順序 not and or 從左至右依次計算。and 且 前後都是真的 or 或 有乙個為真 就為真 not 非 取反 同等優先條件下 從左至右依次運算 x and y 如果x為真 則值為y 否則為 x 集合是無序的,不重複的資料集合,他裡面的元素是可雜湊的 不可變型別 但是集合本身是不可雜湊 ...

oracle 集合的使用

每組查詢均能得到其結果集,若需將多個查詢結果合併成乙個結果集,則可利用集合運算來實現。如並集 union 並集且不去除重複行 unoin all 交集 intersect 差集 minus 集合命令的目的是將兩個 含以上 sql語句產生的結果合併。由於需要將兩個 含以上 資料集合並 因此字段數量必須...