zoukankan      html  css  js  c++  java
  • 将[4,3,2,5,4,3]分割成[4,3,2]、[5,4,3]两个List的算法

    将[4,3,2,5,4,3]分割成[4,3,2]、[5,4,3]两个List的算法

    package com.srie.test;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    //将[4,3,2,5,4,3]分割成[4,3,2]、[5,4,3]两个List的算法;
    public class TestSplitList {
        public static void main(String[] args) {
            // 原List中的对象元素的list
            List<Integer> list = Arrays.asList(new Integer[] { 4, 3, 2, 5, 4, 3 });
            System.out.println(list);
            T t = new T();
            t.setName("t");
            t.setList(list);
            // 原List
            List<T> tList = new ArrayList<T>();
            tList.add(t);
            // 新List
            List<T> newList = new ArrayList<T>();
            // 循环原List集合
            for (int i = 0, size = tList.size(); i < size; i++) {
                T t2 = tList.get(i);
                List<Integer> list2 = t2.getList();
                // 调用不断拆分的算法
                createNewList(newList, t2, list2, 0);
            }
            System.out.println(newList.size());
            System.out.println(newList.get(0).getList());
            System.out.println(newList.get(1).getList());
        }
        private static void createNewList(List<T> newList, T t2, List<Integer> list2, int i) {
            T t = new T();
            t.setName(t2.getName());
            List<Integer> list = new ArrayList<Integer>();
            t.setList(list);
            Integer shangyige = -1;
            for (int j = i, size = list2.size(); j < size; j++) {
                Integer dangqian = list2.get(j);
                if (j > i) {
                    if (dangqian > shangyige) {
                        createNewList(newList, t, list2, j);
                        break;
                    }
                }
                shangyige = dangqian;
                list.add(dangqian);
            }
            newList.add(t);
        }
    }
    class T {
        private String name;
        private List<Integer> list;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public List<Integer> getList() {
            return list;
        }
        public void setList(List<Integer> list) {
            this.list = list;
        }
    }
  • 相关阅读:
    block 专题--基础
    iOS开发之沙盒机制
    App上架流程(2016最新)
    团队项目个人总结
    结对开发训练(续)(郭林林&胡潇丹)
    结对开发训练(郭林林&胡潇丹)
    计算一篇英语文章出现频率最高的十个单词
    TLB和大叶
    韩顺平的java入门到精通中serversql笔记(包括emp表和dept表,linux的mysql版)
    IPv6
  • 原文地址:https://www.cnblogs.com/stono/p/5081771.html
Copyright © 2011-2022 走看看