将[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;
- }
- }
将[4,3,2,5,4,3]分割成[4,3,2]、[5,4,3]两个List的算法的更多相关文章
- 【Paddy】如何将物理表分割成动态数据表与静态数据表
前言 一般来说,物理表的增.删.改.查都受到数据量的制约,进而影响了性能. 很多情况下,你所负责的业务关键表中,每日变动的数据库与不变动的数据量比较,相差非常大. 这里我们将变动的数据称为动态数据,不 ...
- 随笔 JS 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里
JS /* * 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里 * @id 要插入到DOM元素的ID * * 输入值为图片URL 字符串 * */ function addImages(i ...
- js 字符串分割成字符串数组 遍历数组插入指定DOM里 原生JS效果
使用的TP3.2 JS字符串分割成字符串数组 var images='{$content.pictureurl} ' ;结构是这样 attachment/picture/uploadify/20141 ...
- oracle根据分隔符将字符串分割成数组函数
--创建表类型 create or replace type mytype as table of number;--如果定义成varchar--CREATE OR REPLACE type myty ...
- linux文件分割(将大的日志文件分割成小的)
linux文件分割(将大的日志文件分割成小的) linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两种模式.Linux下文件合并可以通过cat命令来实现,非常简单. 在L ...
- linux文件分割(将大的日志文件分割成小的)【转载】
linux文件分割(将大的日志文件分割成小的)linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两种模式.Linux下文件合并可以通过cat命令来实现,非常简单. 在Li ...
- 如何把一个TXT文本文件按行数分割成多个文本文件
2011-04-27 12:00:24| 分类: 默认分类 |字号 订阅 网上有很多文本分割软件都是按字节大小来分割的,主要用于小说类的文本分割,对于比较有规则的内容按行数进行分割非常不方便 ...
- [LeetCode] Split Array into Consecutive Subsequences 将数组分割成连续子序列
You are given an integer array sorted in ascending order (may contain duplicates), you need to split ...
- 用Python将一个列表分割成小列表
用Python将一个列表分割成小列表 2018年01月15日 11:09:25 幸福丶如此 阅读数:16842 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
随机推荐
- SQL Server 事务及回滚事务的几种方法
第一种: declare @iErrorCount int set@iErrorCount=0 begintran Tran1 insertinto t1(Id, c1) values( ...
- FIR滤波器的实现方法(转)
源:http://blog.sina.com.cn/s/blog_493520900102uy26.html 内容来自于上篇博文,第七章,FIR滤波器 http://blog.sina.com.cn/ ...
- 初始化时查看combox的文本内容
string sql = string.Format("select field_name from pt_temp_field where pt_name = '{0}' and temp ...
- codeforce 611B New Year and Old Property
暴力搞 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> u ...
- 2014非专业知识学习---be smart
非专业部分--构建人生 以书籍和网易公开课为主 (1)理财&投资 基金投资相关,好的书籍? (2)哲学总览 <公正>这个看了大半,需要总结归纳. (必选) 同时结合哲学史,归纳西 ...
- Windows Azure Storage Client Library 2.0 入门
入门连接如下: http://gauravmantri.com/2012/11/17/storage-client-library-2-0-migrating-table-storage-code/
- SpringMVC轻松学习-注解的使用(三)
根据上一讲的例子,我们下面就注解的使用进行详细说明. 我们采用sprng MVC开发项目时,通常都会采用注解的方式,这样可以大大提高我们的开发效率.实现零配置.下面我们从零开始重新做一个spring ...
- Android编程中的5种数据存储方式
Android编程中的5种数据存储方式 作者:牛奶.不加糖 字体:[增加 减小] 类型:转载 时间:2015-12-03我要评论 这篇文章主要介绍了Android编程中的5种数据存储方式,结合实例形式 ...
- (简单) POJ 1321 棋盘问题,回溯。
Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子 ...
- DS5 调试 android c++
1.修改Application.mk APP_STL := gnustl_static #这里用gnustl #NDK_TOOLCHAIN_VERSION=clang #这里注释掉 APP_CPPFL ...