依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
包下的方法:
关于集合操作的方法:
public static void main(String[] args) {
String[] arrayA = new String[] { "1", "2", "3", "4"};
String[] arrayB = new String[] { "3", "4", "5", "6" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
// 两个集合的并集 union = [1, 2, 3, 4, 5, 6]
System.out.println("union = " + CollectionUtils.union(listA, listB));
// 忽略集合中的null值 addIgnoreNull = false
System.out.println("addIgnoreNull = " + CollectionUtils.addIgnoreNull(listA, null));
// 两个集合的交集 intersection = [3, 4]
System.out.println("intersection = " + CollectionUtils.intersection(listA,listB));
// 两个集合交集和补集 也有叫析取 disjunction = [1, 2, 5, 6]
System.out.println("disjunction = " + CollectionUtils.disjunction(listA, listB));
// 集合A是被过滤目标 去除A中包含B的 subtract = [1, 2]
System.out.println("subtract = " + CollectionUtils.subtract(listA, listB));
// 在两个集合中任意匹配 containsAny = true
System.out.println("containsAny = " + CollectionUtils.containsAny(listA, listB));
// 返回每个元素出现的次数 getCardinalityMap = {1=1, 2=1, 3=1, 4=1}
System.out.println("getCardinalityMap = " + CollectionUtils.getCardinalityMap(listA));
// 判断这两个结合是否存在交集 isSubCollection = false
System.out.println("isSubCollection = " + CollectionUtils.isSubCollection(listA, listB));
// 判断集合A是否是B的子集 isProperSubCollection = false
System.out.println("isProperSubCollection = " + CollectionUtils.isProperSubCollection(listA, listB));
// 判断两个集合是否相等 isEqualCollection = false
System.out.println("isEqualCollection = " + CollectionUtils.isEqualCollection(listA, listB));
// 判断1在集合中出现的次数 cardinality = 0
System.out.println("cardinality = " + CollectionUtils.cardinality("1", listB));
// 判断集合是否为空 和empty小伙雷同 sizeIsEmpty = false
System.out.println("sizeIsEmpty = " + CollectionUtils.sizeIsEmpty(listB));
// isEmpty = false
System.out.println("isEmpty = " + CollectionUtils.isEmpty(listB));
// 判断集合是否是一个固定长度的集合,此方法使用BoundedCollection接口确定最大大小。如果集合未实现此接口,则返回-1
// isFull = false
System.out.println("isFull = " + CollectionUtils.isFull(listB));
// 判断集合的最大大小
System.out.println("maxSize = " + CollectionUtils.maxSize(listB));
// 返回同步的集合 synchronizedCollection = [3, 4, 5, 6]
System.out.println("synchronizedCollection = " + CollectionUtils.synchronizedCollection(listB));
// 返回不可修改的集合 unmodifiableCollection = [3, 4, 5, 6]
System.out.println("unmodifiableCollection = " + CollectionUtils.unmodifiableCollection(listB));
System.out.println("isFull = " + CollectionUtils.isFull(listB));
// 集合A包含集合B中至少出现一次的collection元素。 retainAll = [3, 4]
System.out.println("retainAll = " + CollectionUtils.retainAll(listA, listB));
// removeAll = [1, 2]
System.out.println("removeAll = " + CollectionUtils.removeAll(listA, listB));
// 集合转换 typedCollection = [1, 2, 3, 4]
System.out.println("typedCollection = " + CollectionUtils.typedCollection(listA, String.class));
}
关于对象的操作:
@Data
@Accessors(chain = true)
public class Emp {
private Long departId;
private String departName;
private String email;
private Integer departNumber;
}
方法:
CollectionUtils.forAllDo(Collection collection, Closure closure);
CollectionUtils.forAllDo(Collection collection, Predicate predicate);
CollectionUtils.transform(Collection inputCollection, Transformer transformer);
CollectionUtils.countMatches(Collection inputCollection, Predicate predicate);
Emp empIns = new Emp().setDepartId(1L).setDepartName("molizhuangquanquan").setEmail("94655718@qq.com").setDepartNumber(23);
Emp u1 = new Emp().setDepartId(1l).setDepartName("chenpi1").setEmail("94655718@qq.com").setDepartNumber(10);
List<Emp> userList = Arrays.asList(empIns, u1);
CollectionUtils.forAllDo(userList, new Closure() {
@Override
public void execute(Object input) {
Emp activityWinRecord = (Emp) input;
Long id = activityWinRecord.getDepartId();
if (Objects.equals(1L, id)) {
activityWinRecord.setDepartNumber(Math.addExact(activityWinRecord.getDepartNumber(),1));
}
}
});
System.out.println("userList1 = " + userList);
CollectionUtils.filter(userList, new Predicate() {
@Override
public boolean evaluate(Object object) {
Emp emp = (Emp) object;
return StringUtils.isNotBlank(emp.getDepartName());
}
});
System.out.println("userList2 = " + userList);
List<String> collect = (List<String>) CollectionUtils.collect(userList, new Transformer() {
@Override
public Object transform(Object input) {
Emp emp = (Emp) input;
return emp.getDepartName();
}
});
System.out.println("collect4 = " + collect);
List<Emp> noli = (List<Emp>) CollectionUtils.select(userList, new Predicate() {
@Override
public boolean evaluate(Object object) {
if (object instanceof Emp) {
Emp emp = (Emp) object;
if (Objects.equals(emp.getDepartId(), 1L) && Objects.equals(emp.getDepartName(), "molizhuangquanquan")) {
return true;
}
}
return false;
}
});
System.out.println("collect5 = " + noli);
List<Emp> nolkihau = (List<Emp>) CollectionUtils.select(userList, new Predicate() {
@Override
public boolean evaluate(Object object) {
if (Emp.class.isAssignableFrom(object.getClass())) {
Emp emp = (Emp) object;
if (Objects.equals(emp.getDepartId(), 1L) && Objects.equals(emp.getDepartName(), "molizhuangquanquan")) {
return true;
}
}
return false;
}
});
System.out.println("nolkihau6 = " + nolkihau);
CollectionUtils.countMatches(userList, new Predicate() {
@Override
public boolean evaluate(Object object) {
Emp emp = (Emp) object;
if(Objects.equals(emp.getDepartId(),1L)){
return true;
}
return false;
}
});
System.out.println("userList7= " + userList);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)