List集合分片

2021-10-01 12:49:36 字數 1329 閱讀 1178

當集合過大,單次處理資料對資料庫造成壓力時,必須考慮分批分片處理資料。比如 oracle資料庫中in引數個數不能超過1000 ,這時可以把引數進行分批處理。當然這種情況也可 用表關聯代替in:.在where條件中使用子查詢,如「select * from b where c in (select d from e …)」 或者 可以拆分sql用 where id in (1, 2, …, 999) or id in (1000, …)這種方法解決 。本文則側重講解如何分片集合。

public

class

sublist

; list

list = arrays.

aslist

(str)

; list

> splitlist =

splitlist

(list,6)

; splitlist.

stream()

.foreach

(system.out:

:println);}

/** * 指定大小,分割集合,將集合按照規定個數分為n個部分

*/public

static

list

>

splitlist

(list

list,

int length)

//result 最終分片後結果

list

> result =

newarraylist

>()

;int size = list.

size()

; system.out.

println

("分片前list大小: "

+ size)

;//count分片大小

int count =

(size + length -1)

/ length;

system.out.

println

("每片大小為 "

+ length +

";共分為 "

+ count +

" 片");

for(

int i =

0; i < count; i++

)return result;

}}

輸出結果:

分片前list大小: 13

每片大小為 6;共分為 3 片

[a1, b2, c3, d4, e5, f6]

[g7, h8, i9, j10, k11, l12]

[m13]

Collection集合,List集合

一 collection集合 a collection 集合 單身漢集合 list 特點 有序,可重複,有索引 arraylist 重點掌握 linkedlist 儲存的元素不可重複,訪問順序一致 set 無序,元素不可重複,元素無索引 hashset 重點掌握 linkedhashset tree...

List集合 Set集合

一 請簡述list介面的特點。v 它是乙個元素訪問有序的集合。例如,存元素的順序是11 22 33。那麼集合中,元素的儲存就是按照11 22 33的順序完成的 v 它是乙個帶有索引的集合,通過索引就可以精確的操作集合中的元素 與陣列的索引是乙個道理 v 集合中可以有重複的元素,通過元素的equals...

關於list集合

list雖然是啥都能放的集合,在不加泛型限制的情況下,是什麼都能放進去,放進去了,也能直接get拿出來。但是如果用了foreach迴圈,或者是迭代器,foreach迴圈和迭代器是有條件的迭代出集合裡面的值!就好比下面的例子 首先宣告alist是乙個list集合 public void foreach...