java分页中显示更多_早期更多失败– Java 8

java分页中显示更多

快速失败早期失败是一种软件工程概念,旨在通过在不应该发生的事情发生时立即停止执行来防止复杂问题的发生。 在之前的博客文章和演示中,我将详细介绍这种方法的优点,在此博客文章中,我将详细介绍Java 8中该思想的另一种用法。

在Java中,由Collection类(例如ArrayList,HashSet,Vector等)返回的迭代器快速失败。 这意味着,如果在迭代时尝试从基础数据结构中添加()或remove(),则会收到ConcurrentModificationException。 让我们来看看:

import static java.util.Arrays.asList;
List ints = new ArrayList<>(asList(1,2,3,4,5,6,9,15,67,23,22,3,1,4,2));for (Integer i: ints) {// some codeints.add(57);  // throws java.util.ConcurrentModificationException
}

在Java 8u20中,Collections.sort()API也会快速失败。 这意味着您也不能在迭代内调用它。 例如:

import static java.util.Arrays.asList;
List ints = new ArrayList<>(asList(1,2,3,4,5,6,9,15,67,23,22,3,1,4,2));for (Integer i: ints) {// some codeCollections.sort(ints); // throws java.util.ConcurrentModificationException
}

这是有道理的。 遍历数据结构并在迭代过程中对其进行排序不仅是反直观的,而且还可能导致不可预测的结果。 现在,您可以避免这种情况,并且如果在调用排序后立即中断,就不会出现异常。

import static java.util.Arrays.asList;
List ints = new ArrayList<>(asList(1,2,3,4,5,6,9,15,67,23,22,3,1,4,2));for (Integer i: ints) {// some codeCollections.sort(ints); // throws java.util.ConcurrentModificationExceptionbreak;
}

但是,这几乎不是很棒的代码。 尝试避免使用旧的skool迭代,并尽可能使用Lambda。 但是,如果您遇到困难,只需在迭代之外进行排序

import static java.util.Arrays.asList;
List ints = new ArrayList<>(asList(1,2,3,4,5,6,9,15,67,23,22,3,1,4,2));
Collections.sort(ints);for (Integer i: ints) {// some code
}

或使用添加时排序的数据结构。

Java 8版本20中引入了Collections.sort()API的新行为。 值得一看的是详细介绍API更改的特定部分:

领域 :core-libs / java.util.collections
简介 :Collection.sort推迟到List.sort

以前, Collection.sort复制列表中的元素以将其排序到一个数组中,对该数组进行排序,然后使用该数组中的这些元素和默认方法就地更新列表。
List.sort推迟到Collection.sort。 这是非最佳的安排。

从8u20版本开始, Collection.sort推迟到List.sort 。 这意味着,例如,使用ArrayList实例调用Collection.sort现有代码现在将使用ArrayList实现的最佳排序。

我认为,如果Oracle在此方面更明确地说明这种更改如何引起运行时问题,那将有所帮助。 考虑到每个人都使用Collections框架,如果以前没有抛出异常的API现在可以在相同的情况下使用(错误代码及其全部内容),那么发行说明使开发人员更容易找到信息会更好。

翻译自: https://www.javacodegeeks.com/2017/11/fail-early-java-8.html

java分页中显示更多

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

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

相关文章

计算机组装与维修单招,单招职二 计算机组装与维修试卷.doc

单招职二 计算机组装与维修试卷高二 计算机组装与维修试卷一、填空题(每空1分&#xff0c;共计30分)1.一个完整的计算机系统是由______________和______________两部分组成的。2.为了更好的为CPU散热&#xff0c;在安装风扇前&#xff0c;先在CPU芯片的顶部均匀地涂抹上一层___…

普通人学python好吗_有人问,普通人学python真的有意义吗?看看大家都是怎么说的吧...

普通人学python有意义吗&#xff1f;现在随着python越来越火&#xff0c;尤其是它成为了人工智能的第一编程语言&#xff0c;还被纳入了中小学的教育中。并且python的应用范围很广泛&#xff0c;可以解决很多专业或非专业的问题。但python真的适合普通人学习吗&#xff1f;我个…

Linux 如何安装程序的源代码软件包/源码程序包/源码包?

文章目录一、安装源码包的三个步骤&#xff08;一&#xff09;执行命令 configure&#xff0c;进行配置/检测&#xff08;二&#xff09;执行命令 make&#xff0c;编译源码&#xff08;三&#xff09;执行命令 make install&#xff0c;安装软件二、源码包安装示例&#xff08…

大文件拆分小文件求top_将文件拆分为流

大文件拆分小文件求top上周&#xff0c;我讨论了类Pattern新的&#xff08;since 1.8&#xff09;方法splitAsStream只能根据流的需要从字符序列中读取字符序列&#xff0c;并且不能继续进行模式匹配以创建所有可能的元素并返回它作为流。 这种行为是流的本质&#xff0c;它是支…

如何取消ie.html,IE浏览器安全警告怎么关闭

部分用户在使用IE浏览器打开某些页面的时候&#xff0c;可能会出现一个“安全警告”的对话框&#xff0c;虽然影响不大&#xff0c;但是每次出现都让人很烦闷&#xff0c;这个时候你就可以根据下面的操作去关闭这个功能。自从百度近日开启了HTTPS安全网页功能之后&#xff0c;每…

sql 计算两个小数乘积_数学篇|学会这些数学计算技巧,想不满分都难!

计算是小学数学的基础&#xff0c;四则运算和混合运算是计算要考察的重点。在这里我们总结了小学用到的所有计算定律和简便方法&#xff0c;包括运算定律、运算法则、运算顺序和速算技巧四大部分&#xff0c;帮助小学生牢固掌握数学知识点。先赞后看&#xff0c;收获满满&#…

Linux 如何关闭防火墙

一、使用 System V init 作为初始化系统的 Linux&#xff08;例如&#xff1a;CentOS 6.x&#xff09; 关闭防火墙的命令&#xff1a; chkconfig iptables off或 service iptables stop二、使用 systemd 作为初始化系统的 Linux&#xff08;例如&#xff1a;CentOS 7.x&#…

java学习2018年_Java 20年

java学习2018年二十年前&#xff0c;在苏黎世的一间公寓里发生了两件事。 我的女儿迈出了第一步&#xff0c;一位年轻的博士后研究员&#xff08;她的父亲&#xff09;迈出了使用Java的第一步。 很难完全了解当时的Java。 在这些时代&#xff0c;TCL盛行&#xff0c;Java时代与…

html 不透明阴影,CSS_css box-shadow阴影不透明的解决办法,如下面示例: 复制代码代码如 - phpStudy...

如下面示例&#xff1a;复制代码代码如下:phpStudy.shadow{width:120px;height:120px;border:1px solid #ccc;background:#fff;font-size:12px;padding:10px;-moz-box-shadow:0 4px 4px #999;-webkit-box-shadow:0 4px 4px #999;box-shadow:0 4px 4px #999;*filter: progid:DXI…

shell 脚本和 bash 脚本的关系

Shell 分类 常见的 Shell 有 sh、bash、csh、tcsh、ash 等。其中 bash shell 是 Linux 的默认 shell。即 bash 是 shell 的一种。 bash 脚本和 shell 脚本 bash 脚本仅是 shell 脚本的一种&#xff0c;csh 脚本也是 shell 脚本的一种。bash 脚本也可以称为 shell 脚本

mysql两个字段相减_MySQL 中NULL和空值的区别?

作为后台开发&#xff0c;在日常工作中如果要接触Mysql数据库&#xff0c;那么不可避免会遇到Mysql中的NULL和空值。那你知道它们有什么区别吗&#xff1f;学不动了&#xff0c;也不想知道它们有什么区别。大兄弟&#xff0c;不行啊&#xff0c;要面试&#xff01;前些天我的好…

做好计划事半功倍论文_Picocli 2.0:事半功倍

做好计划事半功倍论文介绍 Picocli是一个单文件命令行解析框架&#xff0c;它使您几乎不需要任何代码即可创建命令行应用程序。 使用Option或Parameters注释应用程序中的字段&#xff0c;picocli将分别使用命令行选项和位置参数填充这些字段。 例如&#xff1a; Command(name …

halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)

*surface_scratch.hdev:extraction of surface scratches via local thresholding and morphological post-processing*dev_close_window()dev_update_window(‘off’)******step: acquire image //获取图片*****read_image(Image,’surface_scratch’) //读入图片名为’surfac…

Linux 脚本文件中开头的#!/bin/bash和#!/bin/sh是什么意思

解释 #!/bin/sh&#xff1a;表示此脚本使用 /bin/sh 来解释执行&#xff0c;#! 是特殊的表示符&#xff0c;其后面跟的是解释此脚本的 shell 的路径。 我们知道 shell 有很多种&#xff0c;例如&#xff0c;bash、csh、sh等&#xff0c;sh 是其中的一种&#xff0c;命令文件所…

srp unity_SRP是骗局

srp unity根据罗伯特马丁 &#xff08; Robert Martin&#xff09;的 《 清洁法 》&#xff08; Clean Code&#xff09; &#xff0c;“ 单一责任原则 ”意味着“一个阶级应该只有一个改变的理由”。 让我们尝试解密这个模糊的语句&#xff0c;看看它如何帮助我们设计更好的面…

html5app大赛,Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结

悦心,一款音乐播放器应用。由“女立方”团队开发。眼下。较为流行的音乐播放器有QQ音乐、网易云音乐、多米音乐等。“悦心”音乐播放器的主要功能&#xff0c;提供音乐数据库&#xff0c;点击列表播放音乐&#xff0c;还可对歌曲进行收藏。加入专属音乐心情功能。1.歌曲播放过程…

如何执行shell脚本文件

文章目录 一、使用 shell 命令解释器执行脚本二、使用命令 source 执行脚本文件三、使用路径方式执行脚本文件为什么不能在当前目录直接执行当前目录下的脚本文件呢?四、使用命令 exec 执行脚本文件五、它们有什么区别六、验证是否开启子进程(一)通过父 shell 中的变量是否正…

python 40位的数减个位数_Python——进制表示与转换

在前面两篇文章中介绍了基本的数据类型(Python——记录3——数据类型1&#xff0c;Python——记录4——数据类型2)&#xff0c;其中讲到浮点数的计算是通过转换成二进制进行的&#xff0c;那么到底什么是二进制&#xff0c;以及计算机到底包含了哪些进制呢&#xff1f;其实0和1…

javaee概览_Java 9概览

javaee概览对于许多Java 9来说&#xff0c;似乎是一个维护版本&#xff0c;它推动了不能在Java 8中实现的项目Jigsaw。但是&#xff0c;随着JDK中的新模块系统以及与之相关的许多内部更改&#xff0c;Java 9也带来了开发人员工具箱中一些很棒的新内容。 以下是重点内容&#xf…

Linux 命令之 source -- 在当前Shell环境中从指定文件读取和执行命令

文章目录一、命令介绍二、命令格式三、命令示例一、命令介绍 source 命令会在当前 Shell 环境中从指定文件读取和执行命令。source 命令通常用于重新执行刚修改的初始化文件&#xff0c;使之立即生效&#xff0c;而不必注销并重新登录。 source 命令&#xff08;从 C Shell 而…