将[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;
}
}

将[4,3,2,5,4,3]分割成[4,3,2]、[5,4,3]两个List的算法的更多相关文章

  1. 【Paddy】如何将物理表分割成动态数据表与静态数据表

    前言 一般来说,物理表的增.删.改.查都受到数据量的制约,进而影响了性能. 很多情况下,你所负责的业务关键表中,每日变动的数据库与不变动的数据量比较,相差非常大. 这里我们将变动的数据称为动态数据,不 ...

  2. 随笔 JS 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里

    JS /* * 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里 * @id 要插入到DOM元素的ID * * 输入值为图片URL 字符串 * */ function addImages(i ...

  3. js 字符串分割成字符串数组 遍历数组插入指定DOM里 原生JS效果

    使用的TP3.2 JS字符串分割成字符串数组 var images='{$content.pictureurl} ' ;结构是这样 attachment/picture/uploadify/20141 ...

  4. oracle根据分隔符将字符串分割成数组函数

    --创建表类型 create or replace type mytype as table of number;--如果定义成varchar--CREATE OR REPLACE type myty ...

  5. linux文件分割(将大的日志文件分割成小的)

    linux文件分割(将大的日志文件分割成小的) linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两种模式.Linux下文件合并可以通过cat命令来实现,非常简单. 在L ...

  6. linux文件分割(将大的日志文件分割成小的)【转载】

    linux文件分割(将大的日志文件分割成小的)linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两种模式.Linux下文件合并可以通过cat命令来实现,非常简单. 在Li ...

  7. 如何把一个TXT文本文件按行数分割成多个文本文件

    2011-04-27 12:00:24|  分类: 默认分类 |字号 订阅     网上有很多文本分割软件都是按字节大小来分割的,主要用于小说类的文本分割,对于比较有规则的内容按行数进行分割非常不方便 ...

  8. [LeetCode] Split Array into Consecutive Subsequences 将数组分割成连续子序列

    You are given an integer array sorted in ascending order (may contain duplicates), you need to split ...

  9. 用Python将一个列表分割成小列表

    用Python将一个列表分割成小列表 2018年01月15日 11:09:25 幸福丶如此 阅读数:16842   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

随机推荐

  1. 数据结构录 之 单调队列&单调栈。

    队列和栈是很常见的应用,大部分算法中都能见到他们的影子. 而单纯的队列和栈经常不能满足需求,所以需要一些很神奇的队列和栈的扩展. 其中最出名的应该是优先队列吧我觉得,然后还有两种比较小众的扩展就是单调 ...

  2. jetty compile

    lifecycle cant been covered, 需要m2e-extra,在elcipse marcketplace找,不是叫做这个名. <parent>上有lifecycle问题 ...

  3. 计算机学院大学生程序设计竞赛(2015’12) 1001 The Country List

    #include<cstdio> #include<cstring> #include<cmath> #include<string> #include ...

  4. BNU OJ 51005 BQG's Quadrilateral Bricks

    #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include ...

  5. Vim 命令 (转)

    上图引用自何处忘记了,不好意思. 基础快捷键 normal模式下 快速查找 fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符.     t, → 到逗号前的第一个字符.逗号可以变成其它字 ...

  6. Ibatis 3.0 之前使用的都是2.0 3.0与2.0的内容有很大的不同

    以前用过ibatis2,但是听说ibatis3有较大的性能提升,而且设计也更合理,他不兼容ibatis2.尽管ibatis3还是beta10的状态,但还是打算直接使用ibatis3.0, ibatis ...

  7. Varnish CentOS 6.4 x64

    CentOS 6.4 x64 Varnish 安装配置     Varnish的官方网址为http://varnish-cache.org   首先下载Varnish 稳定版本3.0.3   wget ...

  8. Javascript隔离方法

    1.常用的隔离方法: (function() { })(); 2.query的隔离方法: 需要引入jquery: <script type="text/javascript" ...

  9. LPC1788 nand驱动

    Lpc 1788自带有emc接口用于驱动nandflash,norflash,sdram设备,对于nandflash驱动因为配置简单,时序也简单 首先,针对nandflash而言应当在系统中有三个地址 ...

  10. ADXL345加速度传感器驱动

    ADXL345 是 ADI 公司的一款 3 轴.数字输出的加速度传感器.ADXL345 是 ADI 公司推 出的基于 iMEMS 技术的 3 轴.数字输出加速度传感器.该加速度传感器的特点有:    ...