java递增_java-8 – 如何按组递增

有一个表,现在添加一个新列 – sort_num int default 0

id level sort_num

1 1 0

2 1 0

3 2 0

4 2 0

5 2 0

6 3 0

7 3 0

8 3 0

9 3 0

现在我想设置如下的sort_num值

id level sort_num

1 1 1

2 1 2

3 2 1

4 2 2

5 2 3

6 3 1

7 3 2

8 3 3

9 3 4

上面的Java代码实现要求是

int sortNum = 0;

int currentLevel = fooList.get(0).getLevel();

for (RuleConf foo : fooList) {

if(currentLevel != foo.getLevel()){

sortNum = 0;

currentLevel = foo.getLevel();

}

foo.setSortNum(++sortNum);

}

我想知道Java8是否可以简化上面的代码?

PS.使用mysql来实现此要求

set @index:=0; update t set sort_num = (@index:=@index+1) where level = 1 order by id;

set @index:=0; update t set sort_num = (@index:=@index+1) where level = 2 order by id;

set @index:=0; update t set sort_num = (@index:=@index+1) where level = 3 order by id;

最佳答案 最好的方法是坚持你的普通增强循环.我不认为有可能提出单个Stream解决方案,因为您需要具有中间值.喜欢:

Map> levels = fooList.stream()

.collect(Collectors.groupingBy(RuleConf::getLevel));

levels.values().forEach(v ->

IntStream.range(0, v.size()).forEach(i -> v.get(i).setSortNum(i + 1))

);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决WCF接口无法传递object参数的问题

在某些场合中,我们需要提供以object为参数的方法。不过在WCF中,由于需要序列化与反序列化,因此它要求所有WCF传递的参数类型都是已知的,无法传递object这种未知类型。即使用了KnownType来标记自定义对象,也无法调用。以…

wince中的BSP工程的相关文件介绍

一.pbcxml分析 每一个BSP都有一个工程文件&#xff0c;比如MyBSP.pbcxml&#xff0c;里面描述了BSP的信息。下面就来介绍一下BSP的pbcxml文件。 文件的大致格式应该是这样的&#xff1a; <CatalogFile …> <FileInformation ….> …. </FileInformation>…

calcite连接mysql_使用Calcite做Sql语法解析

Flink SQL中使用Calcite作为sql语法解析、校验、优化工具&#xff0c;本篇是实操篇&#xff0c;介绍一下calcite做sql语法解析使用方式。sql经过calcite解析之后&#xff0c;得到一棵抽象语法树&#xff0c;也就是我们说的AST&#xff0c;这棵语法树是由不同的节点组成&#xf…

ASP.NET Web Froms开发模式中实现程序集的延迟加载

延迟加载是一个很大的诱惑&#xff0c;可以达到一些比较好的效果&#xff0c;比如&#xff1a; 1、在实体框架中&#xff0c;由于关联数据的数量和使用时机是不确定的&#xff0c;通过延迟加载&#xff0c;仅在使用的时候去执行关联数据的查询操作&#xff0c;减少无谓的数据查…

java的国际化怎么用_Java有关国际化使用实例

1package com.commons.dormant.resources;import java.util.Locale;import java.util.ResourceBundle;/*** Commons-Resources没有提供已经发布的jar包&#xff0c;所以没有相关的实例&#xff0c;* 本例是java自带的和Resources功能相似的例子。主要是实现国际化* author chai…

jQuery之ajax的跨域获取数据

如果获取的数据文件存放在远程服务器上&#xff08;域名不同&#xff0c;也就是跨域获取数据&#xff09;&#xff0c;则需要使用jsonp类型。使用这种类型的话&#xff0c;会创建一个查询字符串参数 callback? &#xff0c;这个参数会加在请求的URL后面。服务器端应当在JSON数…

两个结构体ifconf和ifreq

用ioctl获得本地ip地址时要用到两个结构体ifconf和ifreq&#xff0c;它们对于大多数人 来说都是比较陌生的&#xff0c;这里给大家一种比较简单的理解方法&#xff0c;当然只一种帮助 理解的方法&#xff0c;在描述中可能会有一些地方与真实定义有所出入&#xff0c;仅供参考. …

java判断tcp是否阻塞_connect()调用在TCP堆栈中是非阻塞的(java)是什么意思

我有一个关于TCP套接字实现的connect()调用的问题.对于connect()调用来说,非阻塞是什么意思. connect()调用通过发送syn,等待SYNACK然后发送ACK,与其他一些套接字进行三次握手.如果连接成功,connect()调用也返回true,否则返回false.如果调用是非阻塞的,那么我猜这意味着连接应该…

php 换行 PHP_EOL变量

一个小小的换行&#xff0c;其实在不同的平台有着不同的实现&#xff0c;为什么要这样&#xff0c;可以是世界是多样的。 本来在unix世界换行就用/n来代替&#xff0c;但是windows为了体现他的不同&#xff0c;就用/r/n&#xff0c;更有意思的是在mac中用/r 因此unix系列用 /n …

alarm项目bug

1. rt5350上运行的soap服务器程序&#xff0c;响应时间过长 原因&#xff1a;打开了soap的调试日志&#xff0c;soap的调试日志是保存的文件中的。所以在rt5350上文件读写速度太慢造成的。因此 在编译的时候不能加-DDEBUG 2. 串口一次read调用读到两帧完整的报文测&#xff0c…

java 读取图片给 matlab_如何将MATLAB图像处理程序转换为java?

将Matlab代码转换为Java代码有几个一般的缺陷.我将Matlab转换成C代码,所以我的建议来自于这些经验.>如果你在Matlab中使用for循环,一般来说,你做错了.添加矩阵(图像等)是相当简单的&#xff1a;a b c;不管图像的大小.过滤也是一个相当简单的调用&#xff1a;a imfilter(‘…

C++ 一键关闭屏幕

Demo下载地址&#xff1a;http://pan.baidu.com/s/1vN4wF #include <windows.h> #include "resource.h"LRESULT CALLBACK WindowProc( HWND hwnd, // handle to windowUINT uMsg, // message identifierWPARAM wParam, // first message parameterL…

django 学习 (一)

1. 下载Django 1.3.3 https://pypi.python.org/simple/django/ 2. 验证下载的文件 md5sum 3. 解压安装 python setup.py install 4. 在python的shell里验证是否安装成功 import django 5. 建立第一个django工程 django-admin.py startproject firstproject 6. 修改新建的工…

炸金花比牌规则java_陈陈来给你们炸金花的简易纸牌规则教学与心态指导

原标题&#xff1a;陈陈来给你们炸金花的简易纸牌规则教学与心态指导炸金花是在全国广泛流传的一种4-7人能同时进行的民间纸牌游戏。游戏使用一副扑克牌&#xff0c;去掉大小王&#xff0c;共52张牌&#xff0c;以手中的三张牌比输赢&#xff0c;游戏过程中需要考验玩家的胆略和…

EBS业务学习之应付INVOICE类型

INVOICE类型 类 型 描 述 标准INVOICE 是指由于采购货物或接受劳务&#xff0c;从供应商处取得的INVOICE &#xff08;标准INVOICE&#xff0c;既可以和订单匹配&#xff0c;也可以不匹配&#xff09; 贷项通知单 是指供应商对已开INVOICE的货物或劳务&…

django 学习 (二) 模板

1. 在应用的目录下创建templates目录&#xff0c;并创建一个html文件&#xff0c;比如my.html 2. 修改应用的views.py文件&#xff0c;将my.html文件反馈给请求&#xff0c;有以下几种写法 1) from django.template import loader, Context from django.http import HttpRespo…

简单网络聊天程序java_基于Java实现hello/hi简单网络聊天程序

Socket简要阐述Socket的概念Socket的英文原义是“孔”或“插座”。在网络编程中&#xff0c;网络上的两个程序通过一个双向的通信连接实现数据的交换&#xff0c;这个连接的一端称为一个Socket。Socket套接字是通信的基石&#xff0c;是支持TCP/IP协议的网络通信的基本操作单元…

华为基于策略划分VLAN的配置方法及示例

学过思科交换机的朋友&#xff0c;可能对基于策略划分VLAN的配置方法印象非常深&#xff0c;感觉确实比较复杂&#xff0c;先要配置VMPS以及VMPS数据库&#xff0c;但在华为交换机中&#xff0c;这种现象得到了彻底改变&#xff0c;因为它有了一种特殊的端口类型——Hybrid。说…

django 学习 (三) 模板变量

将views.py中的变量传递给html模板来显示&#xff0c;变量是以字典的形式传递给html模板文件显示的。 模板文件里以字典的{{健名}}来得到健值。 可传递的变量有以下几种形式 1. 基本变量 return render_to_response(index.html, {title:title-django, user:user-django}) 2. 字…

我的世界java刷怪数量_Minecraft我的世界Java版18w16a更新发布

Minecraft我的世界Java版18w16a更新发布&#xff01;Minecraft 1.13 仍未发布&#xff0c;18w16a为其第32个预览版。目前新版本已经基本完成了所有特性&#xff0c;现在更专注于漏洞修复和细节打磨了&#xff01;MINECRAFT SNAPSHOT 18W16AA Minecraft Java Edition snapshotJa…