摘要:事件起因博主在學(xué)習(xí)爬蟲的時(shí)候,需要將一個(gè)等分成個(gè)。實(shí)現(xiàn)代碼直接附上自己寫的代碼輕噴平分成份數(shù)據(jù)量盡可能相等需要平分的平分成分商數(shù)余數(shù)偏移量循環(huán)長度起始下標(biāo)結(jié)束下標(biāo)代碼用例代碼用例如下原始數(shù)據(jù)分成等份按等份分組后輸出的結(jié)果如下
事件起因
博主在學(xué)習(xí) Python 爬蟲的時(shí)候,需要將一個(gè) list 等分成 n 個(gè) list 。
由于能力有限,自己也沒有更好的實(shí)現(xiàn)方式,所以就現(xiàn)成的拿了別人的代碼直接用。
def splist(l, s): return [l[i:i+s] for i in range(len(l)) if i%s==0]
然而很不巧的的是,項(xiàng)目過程中又碰到了這個(gè)問題,而且這次用的是 Java !!!
雖然說處理的過程是有類似的地方,但真動(dòng)手寫起來還是比較棘手的。畢竟 Java 沒有像 Python 這些豐富的庫函數(shù)。
網(wǎng)上我也找過一些類似的方法,但都不是很滿意,所以還是自己花時(shí)間折騰來造造輪子。
直接附上自己寫的代碼(輕噴):
/** * 平分list成n份 數(shù)據(jù)量盡可能相等 * @param list 需要平分的list * @param n 平分成n分 * @return */ public static代碼用例List > splitList(List
list, int n) { List > strList = new ArrayList<>(); if (list == null) return strList; int size = list.size(); int quotient = size / n; // 商數(shù) int remainder = size % n; // 余數(shù) int offset = 0; // 偏移量 int len = quotient > 0 ? n : remainder; // 循環(huán)長度 int start = 0; // 起始下標(biāo) int end = 0; // 結(jié)束下標(biāo) List
tempList = null; for (int i = 0; i < len; i++) { if (remainder != 0) { remainder--; offset = 1; } else { offset = 0; } end = start + quotient + offset; tempList = list.subList(start, end); start = end; strList.add(tempList); } return strList; }
代碼用例如下:
public static void main(String[] args) { ListintegerList = new ArrayList<>(); // 原始數(shù)據(jù):[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] for (int i = 0; i < 14; i++) { integerList.add(i); } List > splitList = splitList(integerList, 10); // 分成10等份 System.out.println(splitList); }
按10等份分組后輸出的結(jié)果如下:
[[0, 1], [2, 3], [4, 5], [6, 7], [8], [9], [10], [11], [12], [13]]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67833.html
摘要:基于切割多邊形實(shí)現(xiàn)思路初稿詳見多邊形等分依賴實(shí)現(xiàn)實(shí)現(xiàn)過程結(jié)果類泰森多邊形平分多邊形結(jié)果原始平面隨機(jī)點(diǎn)集合分組后組中心集合構(gòu)造泰森多邊形聚合類聚合聚合總量數(shù)據(jù)集合簇族數(shù)量中 基于K-means 切割多邊形 JAVA實(shí)現(xiàn) 思路初稿詳見多邊形等分 依賴 geotools ekmeans org.locationtech.jts jts-co...
摘要:關(guān)于旋轉(zhuǎn)木馬效果實(shí)用例子一個(gè)實(shí)際應(yīng)用在優(yōu)酷的頻道頁。將對(duì)的數(shù)據(jù)操作轉(zhuǎn)化為數(shù)組,數(shù)組元素存儲(chǔ)各項(xiàng)的數(shù)據(jù)寬高絕對(duì)定位偏移值透明度以及層疊參數(shù),在模板處遍歷實(shí)際項(xiàng)目的數(shù)組,其樣式則通過索引獲取對(duì)數(shù)組的元素?cái)?shù)據(jù)。 同事拿到個(gè)設(shè)計(jì)稿,是旋轉(zhuǎn)木馬的輪播效果,于是網(wǎng)上找了一下,發(fā)現(xiàn)了jquery實(shí)現(xiàn)的效果,一有空就看看源碼,研究其實(shí)現(xiàn)原理,想著用vue的數(shù)據(jù)驅(qū)動(dòng)方式來實(shí)現(xiàn)一個(gè),但這個(gè)效果跟以往做的d...
摘要:關(guān)于旋轉(zhuǎn)木馬效果實(shí)用例子一個(gè)實(shí)際應(yīng)用在優(yōu)酷的頻道頁。將對(duì)的數(shù)據(jù)操作轉(zhuǎn)化為數(shù)組,數(shù)組元素存儲(chǔ)各項(xiàng)的數(shù)據(jù)寬高絕對(duì)定位偏移值透明度以及層疊參數(shù),在模板處遍歷實(shí)際項(xiàng)目的數(shù)組,其樣式則通過索引獲取對(duì)數(shù)組的元素?cái)?shù)據(jù)。 同事拿到個(gè)設(shè)計(jì)稿,是旋轉(zhuǎn)木馬的輪播效果,于是網(wǎng)上找了一下,發(fā)現(xiàn)了jquery實(shí)現(xiàn)的效果,一有空就看看源碼,研究其實(shí)現(xiàn)原理,想著用vue的數(shù)據(jù)驅(qū)動(dòng)方式來實(shí)現(xiàn)一個(gè),但這個(gè)效果跟以往做的d...
摘要:需要實(shí)現(xiàn)一個(gè)地圖圖標(biāo)聚合算法最終功能類似安居客在地圖搜索房源的功能當(dāng)?shù)貓D縮放級(jí)別較大時(shí)僅用一個(gè)地圖標(biāo)記顯示該區(qū)域總數(shù)當(dāng)?shù)貓D縮小至一定級(jí)別時(shí)每條信息才可以顯示為單獨(dú)的圖標(biāo)自己擬了一套算法基本思想是以網(wǎng)格遞歸分割全部數(shù)據(jù)點(diǎn)直到網(wǎng)格大小達(dá)到閾值或 需要實(shí)現(xiàn)一個(gè)地圖圖標(biāo)聚合算法, 最終功能類似 安居客 在地圖搜索房源的功能. 當(dāng)?shù)貓D縮放級(jí)別較大時(shí), 僅用一個(gè)地圖標(biāo)記顯示該區(qū)域總數(shù); 當(dāng)?shù)貓D縮小...
閱讀 2293·2021-11-24 09:39
閱讀 2536·2021-11-22 15:24
閱讀 2976·2021-09-02 09:48
閱讀 3010·2021-07-26 22:01
閱讀 1433·2019-08-30 11:09
閱讀 1673·2019-08-29 18:47
閱讀 601·2019-08-29 15:40
閱讀 2132·2019-08-29 15:22