Tag: foreach

每个循环工作的Java

我正在处理某项任务, 当我偶然做错了什么但是代码执行并提供了正确的结果。 我对此感到有些惊讶,并且对于每个循环的所有这些是如何工作都有疑问。 示例(示例程序), public static void main( String[] args ) { String myInput = “hello , hi , how are you “; String[] splitted = myInput.split(“,”); List mylist = new ArrayList(); for (String output : splitted) { mylist.add(output); } for (String output : mylist) { System.out.println(output); mylist = new ArrayList(); //It worked mylist.add(output); } […]

JSTL forEach分隔符

在执行foreach时,JSTL中是否有内置function来输出分隔符? 任务是在每次迭代后输出分隔符(如逗号),除了最后一个(或除了第一个之外的每个迭代之前)。 foreach有没有ELSE标签?

如何在java 8中迭代JSONArray

我有以下代码,它使用for loop迭代JSONArray的元素。 import org.apache.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; import java.util.stream.IntStream; public class Pmt { private String[] patchInformation_svnRevisionpublic; private final Logger logger = Logger.getLogger(Pmt.class.getName()); private static final String COMMITS_IN_PATCH_IDENTIFIER = “patchInformation_svnRevisionpublic”; //key used to identify the commits in a patch from JSON response received from PMT private static final String KEY_STRING = “name”; private static final […]

如何在Velocity foreach循环中获得从零开始的计数

我试图在Velocity #foreach指令中获得一个从零开始的计数器。 如果我使用: #foreach ($item in $list) item.getName() : $velocityCount #end 我会得到: Fred : 1 Wilma : 2 Barney : 3 但是我需要: Fred : 0 Wilma : 1 Barney : 2 从速度模板的角度来看,解决方案必须尽可能简单。 编辑 : 我可以用: #foreach ($item in $list) #set( $num = $velocityCount – 1 ) //The white space in mandatory item.getName() : $num #end […]

通过Java中的for-each循环检测第一次迭代

我正在使用一个服务器,它将字符分隔列表返回给它的客户端。 为了构建这些列表,我必须通过for-each循环检测第一次迭代: StringBuilder builder = new StringBuilder() ; boolean firstIterationFlag = true ; for ( String s : list ){ if ( firstIterationFlag) { firstIterationFlag = false ; } else { builder.append(separator); } builder.append(s) ; } return builder.toString() ; 没有国旗,有没有办法做到这一点?

每个vs常规的Java – 它们是等价的吗?

这两个结构是否相同? char[] arr = new char[5]; for (char x : arr) { // code goes here } 相比: char[] arr = new char[5]; for (int i = 0; i < arr.length; i++) { char x = arr[i]; // code goes here } 也就是说, 如果我在两个循环的主体中放置完全相同的代码(并且它们编译),它们的行为是否完全相同? 完全免责声明:这是受另一个问题的启发( Java:这两个代码是相同的 )。 我的回答结果certificate不是答案,但我觉得Java for-each的确切语义有一些细微差别需要指出。

使用带有Maps键集的流时出现ConcurrentModificationException

我想从someMap删除someMap中不存在哪些键的所有项目。 看看我的代码: someMap.keySet().stream().filter(v -> !someList.contains(v)).forEach(someMap::remove); 我收到java.util.ConcurrentModificationException 。 为什么? 流不是平行的。 这样做最优雅的方法是什么?

如何使用foreach循环遍历java 8流

假设我们尝试将一个可能抛出已检查exception的lambda应用于java 8流: Stream stream = Stream.of(“1”, “2”, “3”); Writer writer = new FileWriter(“example.txt”); stream.forEach(s -> writer.append(s)); // Unhandled exception: java.io.IOException 这不会编译。 一种解决方法是在RuntimeException嵌套已检查的exception,但它使以后的exception处理变得复杂,而且它只是丑陋: stream.forEach(s -> { try { writer.append(s); } catch (IOException e) { throw new RuntimeException(e); } }); 替代解决方法可能是将有限的function性forEach转换为对检查exception更友好的普通旧foreach 循环 。 但天真的方法失败了: for (String s : stream) { // for-each not applicable to expression type […]

java中的foreach关键字?

我知道foreach在编程中的含义以及何时使用它。 Java中是否有foreach关键字? 我试图找到一个关键字列表,但只有foreach而不是foreach 。

为什么这个for-each循环不起作用?

在这段代码中,为什么我的数组不是按照我想要的那样初始化的? for-each循环是不是设计成这样做的,还是我只是没有正确使用它? int[] array = new int[5]; //initialise array -> Doesn’t work! Array still full of 0’s for(int i : array) i = 24;