关于java:获取数组列表中元素的两两组合

创立两两组合实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class MaterialRelevance {

    /**
     * 编码1
     */
    private String code1;

    /**
     * 编码2
     */
    private String code2;
}

获取两两组合

    /**
     * 获取一个数组中两两组合
     *
     * @param list
     * @return
     */
    public List<MaterialRelevance> combineTwoElement(List<String> list) {
        List<MaterialRelevance> resultList = Lists.newArrayListWithExpectedSize(list.size() * list.size() / 2);
        if (CollectionUtils.isEmpty(list)) {
            return null;
        }
        if (list.size() >= 2) {
            for (int j = 0; j < list.size(); j++) {
                resultList.addAll(ll(list.subList(j, list.size())));
            }
        }
        return resultList;
    }

    private List<MaterialRelevance> ll(List<String> list) {
        List<MaterialRelevance> resultList = Lists.newArrayListWithExpectedSize(list.size() * list.size() / 2);
        for (int j = 1; j < list.size(); j++) {
            resultList.add(new MaterialRelevance(list.get(0), list.get(j)));
        }
        return resultList;
    }

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理