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;
        }
    }
  • 相关阅读:
    触发器
    数据库function和procedure
    java连接数据库
    单例模式
    python入门相关笔记
    ubuntu 系统备份到移动硬盘(tar) 还原到另一台电脑
    大白菜pe 通用pe 安装心得
    18 java 代理模式 (转)
    5 HBase 常用Shell命令
    1、shell 简介
  • 原文地址:https://www.cnblogs.com/stono/p/5081771.html
Copyright © 2011-2022 走看看