Collection常见工具类--CollectionUtil
======================================================Collection常见工具类:
import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; import org.springframework.util.CollectionUtils; public class CollectionUtil { /** * 集合工具类汇总: * * static void swap(List<?> list, int i, int j) * 在指定List的指定位置i,j处交换元素。 * static void rotate(List<?> list, int distance) * 当distance为正数时,将List集合的后distance个元素“整体”移到前面;当distance为负数时,将list集合的前distance个元素“整体”移到后边。该方法不会改变集合的长度。 * static Integer max(Collection<? extends Integer> coll) * 输出最大数 * static Integer min(Collection<? extends Integer> coll) * 输出最小数 * static boolean Collections.replaceAll(list, oldVal, newVal) * 替换所有元素值oldVal为newVal * static Integer Collections.frequency(list, obj) * 列表中出现指定元素的次数 * * ****** 适用于List<Integer> */ /*** * 对数据进行分组List,每组最多eachGroupSize个 * @param data * @param eachGroupSize * @return */ public static <T> List<List<T>> splitToGroups(Collection<T> data, int eachGroupSize){ if(CollectionUtils.isEmpty(data)){ return new ArrayList<>(0); } if(eachGroupSize <= 0){ throw new IllegalArgumentException("参数错误"); } List<List<T>> result = new ArrayList<>(); for(int index=0; index<data.size(); index+=eachGroupSize){ result.add(data.stream().skip(index).limit(eachGroupSize).collect(Collectors.toList())); } return result; } }
======================================================Collection常见工具测试类:
/** * 集合常见操作 */ @Test public void test_collections(){ List<Integer> intList = new ArrayList<>(); intList.add(100); intList.add(89); intList.add(14); intList.add(1); intList.add(50); //输出最大数 System.out.println(Collections.max(intList)); //输出最小数 System.out.println(Collections.min(intList)); //输出原列表 System.out.println(intList); //替换所有元素值oldVal为newVal Collections.replaceAll(intList, 89, 90); System.out.println(intList); //在指定List的指定位置i,j处交换元素 Collections.swap(intList, 2, 1); System.out.println(intList); //对List集合元素进行随机排序 Collections.shuffle(intList); System.out.println(intList); //当distance为正数时,将List集合的后distance个元素“整体”移到前面;当distance为负数时,将list集合的前distance个元素“整体”移到后边。该方法不会改变集合的长度 Collections.rotate(intList, 3); System.out.println(intList); //列表中出现指定元素的次数 System.out.println(Collections.frequency(intList, 50)); } /** * 对集合进行分组List */ @Test public void test_splitToGroups(){ List<Integer> intList = new ArrayList<>(); for(int i=4; i>=0; i--){ intList.add(i); } System.out.println(intList); List<List<Integer>> groups = CollectionUtil.splitToGroups(intList, 3); System.out.println(groups); }