将[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. POJ 3648 Wedding

    2-SAT,直接选择新娘一侧的比较难做,所以处理的时候选择新郎一侧的,最后反着输出就可以. A和B通奸的话,就建边 A->B'以及B->A’,表示 A在新郎一侧的话,B一定不在:B在新郎一 ...

  2. Qt5:窗口各类位置

    在Qt程序中获取窗口位置的函数有  geometry()   ,   frameGeometry()  , pos() ,x() , y()等 下面来看看这些函数的区别 还有另外两个函数 size() ...

  3. CentOS 6 NFS的安装配置

    $ sudo umount /mnt/ /mnt was not found in /proc/mounts /mnt was not found in /proc/mounts 解决: umount ...

  4. urllib2修改header

    python网络访问的标准模块 urllib与urllib2并不是升级版的关系,具体可见谷歌文章:difference between urllib and urllib2urllib2的官方文档:h ...

  5. API 友好

    API友好 新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展. 数据输出 新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置defa ...

  6. head和tail命令-----得到头尾N行或者这去掉尾头N/N-1行

    [algo@localhost tmp]$ cat test  1 2 3 4 5 head得到头部2行,删掉尾部2行 [algo@localhost tmp]$ head -n +2 test  1 ...

  7. Python正则表达式,统计分析nginx访问日志

    目标: 1.正则表达式 2.oop编程,统计nginx访问日志中不同IP地址出现的次数并排序 1.正则表达式 #!/usr/bin/env python # -*- coding: utf-8 -*- ...

  8. Inside dependency property

    依赖属性的定义,分为3步(以PresentationFramework中的System.Windows.Controls.Button为例) 1.  声明依赖属性 public static read ...

  9. Delphi中unicode转汉字函数(转)

    源:Delphi中unicode转汉字函数 近期用到这个函数,无奈没有找到 delphi 自带的,网上找了下 有类似的,没有现成的,我需要的是 支持 “\u4f00 ” 这种格式的,即前面带标准的 “ ...

  10. HTML学习(三)文本格式化

    HTML文本格式化HTML 可定义很多供格式化输出的元素,比如粗体和斜体字.例1:此例演示如何在一个 HTML 文件中对文本进行格式化<html> <body> <b&g ...