怎么把数组分割成2个数组,每个数组的长度是原始数组的1/2
要完整的代码和注释。
2条回答 默认 最新
关注 https://blog.csdn.net/qq_34926773/article/details/94437175
List<String> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { list.add("China"+i); } CommUtil<String> util = new CommUtil<String>(); List<List<String>> resultList = util.subListBySegment(list, 2); for (int i = 0; i < resultList.size(); i++) { List<String> tempList = resultList.get(i); for (int j = 0; j < tempList.size(); j++) { System.out.print(tempList.get(j)); } }
public class CommUtil<T> { public List<List<T>> subListBySegment(List<T> data, int segments) { List<List<T>> result = new ArrayList<>(); int size = data.size();// 数据长度 if (size > 0 && segments > 0) {// segments == 0 ,不需要分隔 int count = size / segments;// 每段数量 List<T> cutList = null;// 每段List for (int i = 0; i < segments; i++) { if (i == segments - 1) { cutList = data.subList(count * i, size); } else { cutList = data.subList(count * i, count * (i + 1)); } result.add(cutList); } } else { result.add(data); } return result; } public List<List<T>> subListByCount(List<T> data, int count) { List<List<T>> result = new ArrayList<>(); int size = data.size();// 数据长度 if (size > 0 && count > 0) { int segments = size / count;// 商 /** * 1.整除, 即分隔为segments 段 * 2.除不尽,即分隔为segments + 1 段 */ segments = size % count == 0 ? segments : segments + 1; // 段数 List<T> cutList = null;// 每段List for (int i = 0; i < segments; i++) { if (i == segments - 1) { cutList = data.subList(count * i, size); } else { cutList = data.subList(count * i, count * (i + 1)); } result.add(cutList); } } else { result.add(data); } return result; } }
解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!