从一组集合中获取,分多次取集合中的每段数据中的最大值,重组成一个新的集合。

一个项目中偶遇的简单算法,个人觉得还不错,虽不常用,也记录在此吧。

 1 package huolongluo.qihuo.util;
 2
 3 import android.util.Log;
 4
 5 import java.util.ArrayList;
 6 import java.util.Collections;
 7 import java.util.List;
 8
 9 /**
10  * Created by 火龙裸先生 on 2017/11/13.
11  */
12
13 public class ListUtils
14 {
15     private static final String TAG = "ListUtils";
16     /**
17      * 从一个集合里面,从0位置开始,
18      * 每次从集合截取指定长度的一段集合,取出其中的最大值。
19      * 最终把每次拿到的最大值,形成一个新的集合作为返回值。
20      *
21      * @param oldList 待处理的集合
22      * @param space   每次从老集合中取多少个值进行比较
23      */
24     public static List<Float> getNewList(List<Float> oldList, int space)
25     {
26         Log.e(TAG, "===============数据源==============" + oldList);
27
28         List<Float> last = new ArrayList<>(); // 数据源末尾多出来的几个数
29
30         int index = 0;
31         for (int i = 0; i < oldList.size(); i++)
32         {
33             if (index + space < oldList.size())
34             {
35                 Log.e(TAG, "==========截取到的是======" + oldList.subList(index, index + space));
36                 last.add(Collections.max(oldList.subList(index, index + space)));
37             }
38             else
39             {
40                 if (index < oldList.size())
41                 {
42                     last.add(Collections.max(oldList.subList(index, oldList.size())));
43                     Log.e(TAG, "********末尾集合********" + oldList.subList(index, oldList.size()));
44                 }
45             }
46             index = index + space;
47         }
48         Log.e(TAG, "=================最终结果=============" + last);
49         Log.e(TAG, "=================最终结果===条数==========" + last.size());
50
51         return last;
52     }
53 }
时间: 2024-07-31 05:03:36

从一组集合中获取,分多次取集合中的每段数据中的最大值,重组成一个新的集合。的相关文章

系统相册中获取gif图片 保证取到的图片不会改变

NSURL *imageRefURL = [info valueForKey:UIImagePickerControllerReferenceURL];                                        ALAssetsLibrary* assetLibrary = [[ALAssetsLibrary alloc] init];                    void (^ALAssetsLibraryAssetForURLResultBlock)(ALAss

web过滤器中获取请求的参数(content-type:multipart/form-data)

1.前言: 1.1 在使用springMVC中,需要在过滤器中获取请求中的参数token,根据token判断请求是否合法: 1.2 通过requst.getParameter(key)方法获得参数值; 这种方法有缺陷:它只能获取  POST 提交方式中的Content-Type: application/x-www-form-urlencoded; HttpServletRequest request= (HttpServletRequest) req; String param = reque

request中获取post的json对象数据content-type=“text/plain”

其实采用http://www.cnblogs.com/SimonHu1993/p/7295750.html中的方法一都能获取到,就是通过获取request中的流数据,拿到json数据,理论上应该适用各种content-type的请求数据. /** *获取 request 中用POST方式"Content-type"是 * "text/plain"发送的 json数据 * @author: Simon * @date: 2017年8月6日 下午7:44:09 * @p

java小知识点(一)---Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法   程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:   以下将列出几种方法:   方法一:从控制台接收一个字符,然后将其打印出来   publicstatic void main(String [] args) throws IOException{   Sys

父窗口中获取iframe中的元素

js 在父窗口中获取iframe中的元素 1. Js代码   格式:window.frames["iframe的name值"].document.getElementById("iframe中控件的ID").click(); 实例:window.frames["ifm"].document.getElementById("btnOk").click(); 2. Java代码   格式: var obj=document.get

Flutter 中获取设备信息 以及 获取地 理位置

一.Flutter 中获取设备信息 https://pub.dev/packages/device_info 设备信息代码 import 'package:flutter/material.dart';import 'package:device_info/device_info.dart'; class DevicPage extends StatefulWidget{ DevicPage({Key key}); _DevicPage createState() => _DevicPage()

小程序全局状态管理,在页面中获取globalData和使用globalSetData

GitHub: https://github.com/WozHuang/mp-extend 主要目标 微信小程序官方没有提供类似vuex.redux全局状态管理的解决方案,但是在一个完整的项目中各组件的数据一致性是必须要保证,因此需要开发一个能够实现小程序全局状态管理的解决方案. 设计思路 参考omix后,我觉得其中实现全局状态管理的方式与小程序本身的写法有点差异 小程序使用setData,omix直接使用封装的this.store修改 小程序官方的示例中以app.globalData作为全局属

获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中)

import java.io.File; import java.io.FileFilter; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.List; public class huoquwenjian { /*获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中) * 思路: * 1,既然包含子目录,就需要递归. * 2

在action中将字符串、对象、list集合保存到值栈中,在jsp页面中获取的方法

转自:csdn 封装对象User,属性有id,username,email等1.1:在action中将字符串保存到值栈中   1.1.1 获取值栈对象         ValueStack stack = ActionContext.getContext().getValueStack();   1.1.2 将字符串保存到值栈中         stack.set("username","leo");1.2:在jsp页面中获取值栈中的字符串   1.2.1 <