java集合2种分组方式

it2022-05-05  167

/** * @param list 被分组集合 * @param n 每组个数 * @return */ public static List <List> groupList(List list, int n) { List <List> result = new ArrayList <> (); int remainder = list.size () % n; //(先计算出余数) int number = list.size () / n; //然后是商 if (0 != remainder) { number = number + 1; } for (int i = 0; i < number; i++) { List value = null; if (i < number - 1) { value = list.subList (i * n, (i + 1) * n); } else { value = list.subList (n * (number - 1), list.size ()); } result.add (value); } return result; } /** * 将集合分成n组 * * @param list 被分组集合 * @param n 拆分成n组 * @return */ public static List <List> groupList(List list, int n) { List <List> result = new ArrayList <List> (); int remainder = list.size () % n; //(先计算出余数) int number = list.size () / n; //然后是商 int offset = 0;//偏移量 for (int i = 0; i < n; i++) { List value = null; if (remainder > 0) { int start = i * number + offset; int end = (i + 1) * number + offset + 1; value = list.subList (start, end); remainder--; offset++; } else { int start1 = i * number + offset; int end1 = (i + 1) * number + offset; value = list.subList (start1, end1); } result.add (value); } return result; }

 


最新回复(0)