Tag: foreach

如何使我的类可迭代,以便我可以使用foreach语法?

我有Book和BookList类。 BookList是这样的: public class BookList { private final List bList = new ArrayList(); public int size() { return bList.size(); } public boolean isEmpty() { … } public boolean contains(Book b) { … } public boolean add(Book b) { … } public boolean remove(Book b) { .. } public void clear() { … } public Object […]

Java foreach循环:for(整数i:列表){…}

当我使用JDK5时如下 ArrayList list = new ArrayList(); for (Integer i : list) { //cannot check if already reached last item } 另一方面,如果我只使用Iterator ArrayList list = new ArrayList(); for (Iterator i = list.iterator(); i.hasNext();) { //i can check whether this is last item if(i.hasNextItem()){ } } 如何检查我是否已经使用for (Integer i : list) {到达最后一项for (Integer i : list) {

从forEach java 8获取返回列表

我正在尝试使用流来处理某些事情,我认为我有一个概念上的误解。 我试图获取一个数组,将其转换为流,并在数组中的.forEach项我想运行一个函数并从foreach返回该函数的结果列表。 基本上这个: Thing[] functionedThings = Array.stream(things).forEach(thing -> functionWithReturn(thing)) 这可能吗? 我使用错误的流function吗?

增强的For循环 – 对象数组

好的,我有一个名为Dog()的类,它接受两个参数,一个字符串和一个整数。 这个类有一个名为bark()的方法,它根据传递给Dog()构造函数的整数打印一个字符串。 我还有一个名为Kennel()的类,它创建了一个包含5个Dog()的数组…看起来像这样: public class Kennel { Dog[] kennel = new Dog[5]; public Kennel() { kennel[0] = new Dog(“Harold”,1); kennel[1] = new Dog(“Arnold”,2); kennel[2] = new Dog(“Fido”,3); kennel[3] = new Dog(“Spot”,4); kennel[4] = new Dog(“Rover”,5); } } 首先,这可行,但似乎错了。 为什么我要从Dog [] ……新狗[5]开始? 也许是愚蠢的问题……我是新手。 无论如何……我被要求做的是使用“增强”for循环来遍历调用bark()的数组。 所以使用传统的for循环,它看起来像这样: for (i=0;i<kennel.length;i++) { kennel[i].bark(); } 简单的东西吧? 但是如何使用for(type item:array)语法实现它?

对于使用2Darrays的每个循环

这是Java代码的片段: int[][] uu = new int[1][1]; uu[0][0] = 5; for(int[] u: uu){ System.out.println(u[0]); } 它打印5.但为什么for循环的声明部分声明as int[] u ,而不是as int[][] u ? 在uu你引用2D数组…这不是一个功课。 我正在准备Java认证。 干杯

Jsf动态添加/删除c:forEach循环中的组件

在我的项目中,单击复选框并添加更多按钮,我试图添加一行,单击删除按钮,删除确切的行。 有时我在控制器方法中得到错误的参数值。 因此整个组件生成逻辑无法正常工作。 的index.xhtml OuterIndex : #{shipmentCount.index} #{shipment.name} InnerIndex : #{shipmentRowCount.index} #{shipmentRow.priceChoice} #{shipmentRow.priceEnable} PostOffer.java @ManagedBean @ViewScoped public class PostOffer implements Serializable { private List shipmentTerms = new ArrayList(); public PostOffer() {} @PostConstruct public void init() { shipmentTerms.add(new ShipmentProxy(1l, “FAS”)); shipmentTerms.add(new ShipmentProxy(2l, “CFR”)); } public void processPriceDiffChoice(int shipmentIndex, int rowIndex) { ShipmentRow row = shipmentTerms.get(shipmentIndex).getShipmentRowList().get(rowIndex); if […]

对于循环forms:Java中的“for(A b:c)”

这是我第一次看到这种语法: // class Node public class Node { … … } public class Otherclass { … } Otherclass graph = new Otherclass(); // getSuccessors is a method of Otherclass class Node currentNode ; List successors = graph.getSuccessors(currentNode); // weird for loop for (Node son : successors) { // do something } 循环是什么? 某种Matlab语法? 还有其他方法可以编写for循环吗? 问候

增强的for循环中局部变量的范围

关于变量范围,我有一个相当简单的问题。 我熟悉增强的For-Loops,但我不明白为什么我应该声明一个新变量来保存每个元素。 一个例子可能澄清我的问题: int[] ar = {1, 2, 3}; int i = 0; for(i : ar) { // this causes an error if I do not declare a new variable: int i // for(int i : ar) // this works fine System.out.println(i); } 那么我为什么要声明这个新变量呢? 毕竟i可以在for循环中访问。 我不想使用任何以前的i值,只是不想声明一个新变量。 (我猜测其他可迭代项目使用相同的变量可能会更快)。 我想这就是增强For For-Loop的构建方式,但这不会破坏整个范围的想法吗? 上述行为引发了一个问题。 编译器是否对整个for循环使用相同的变量并只更新其值,或者为每次迭代创建一个新变量 ? 一个有趣的部分是,如果我保留int i的声明(在for循环之前和之内),我甚至会得到编译器错误 重复的局部变量i […]

如何增强for-loop?

我一个接一个地迭代String对象列表的元素: LinkedList list; // add values to the list here for (int i = 0; i < list.size(); i++) System.out.println(list.get(i)); 在这里,每次我在列表上调用get()时,列表从其一端一直迭代到第i个元素 – 因此上述循环的复杂度为O(n ^ 2)。 是一个。)与上面的增强型for循环相同,或者b。)是for循环保持指针的最后位置,因此下面循环的复杂性是O(n)? for (String s:list) System.out.println(s); 如果上面的情况(b) – 我认为是 – 在列表中使用迭代器是否有任何优势。 这是一个简单的迭代 – 没有来回。 编辑:..我的列表操作是只读的。 TIA。

根据另一个列表中的条件删除一个列表中的某些元素

我是Java8的新手。 我需要根据某些条件(来自另一个列表)在一个列表中减去/删除POJO并在UI上显示它。 迭代一个列表并搜索条件删除对象将原始列表发送到UI Children.java private String firstName; private String lastName; private String school; private String personId; // Setters and getters. Person.java private String personId; private String fullName; private String address; // Setters and Getters. ..主要代码.. // populated by other methods. List personList; //Connect to DB and get ChildrenList List childrenList = criteria.list(); for(Children child : […]