如果我更改if(book.getPubyear()),我不知道如何检查链接列表中的每个记录和书籍
public class sredniaocen {
class Book {
int pubyear;
String title;
public Book(String title, int pubyear) {
this.title = title;
this.pubyear = pubyear;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPubyear() {
return this.pubyear;
}
public void setPubyear(int pubyear) {
this.pubyear = pubyear;
}
public static void main(String args[]) {
sredniaocen.Book book = new sredniaocen().new Book("abcd", 1998);
sredniaocen.Book book1 = new sredniaocen().new Book("efgh", 1999);
sredniaocen.Book book2 = new sredniaocen().new Book("ijkl", 2000);
sredniaocen.Book book3 = new sredniaocen().new Book("mnou", 2001);
sredniaocen.Book book4 = new sredniaocen().new Book("prst", 2002);
sredniaocen.Book book5 = new sredniaocen().new Book("wxyz", 2003);
LinkedList<Book> booklist = new LinkedList<Book>();
booklist.add(book);
booklist.add(book1);
booklist.add(book2);
booklist.add(book3);
booklist.add(book4);
booklist.add(book5);
for (Book title : booklist) {
if (book.getPubyear() > 2000) {
System.out.println(book.title);
}
}
System.out.println("Książka " + book.title + " " + book.pubyear);
}
}
我今天花了很多时间,但我不知道。
我改变了
LinkedList<Book> booklist = new LinkedList<Book>();
booklist.add(new Book("abc", 1998));
booklist.add(new Book("def", 1999));
booklist.add(new Book("ghi", 2000));
booklist.add(new Book("jkl", 2001));
booklist.add(new Book("mno", 1978));
booklist.add(new Book("prs", 2012));
booklist.add(new Book("tuw", 2006));
for (Book book : booklist) {
if (book.getPubyear() > 2000) {
System.out.println(book.getTitle());
}
现在工作正常
我认为您可能不需要为您的用例使用LinkedList
:
import java.util.StringJoiner;
public class Book {
private String title;
private int pubYear;
public Book(String title, int pubYear) {
this.title = title;
this.pubYear = pubYear;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPubYear() {
return this.pubYear;
}
public void setPubYear(int pubYear) {
this.pubYear = pubYear;
}
@Override
public String toString() {
return new StringJoiner(", ", Book.class.getSimpleName() + "[", "]")
.add("title='" + title + "'")
.add("pubYear=" + pubYear)
.toString();
}
}
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
Book book0 = new Book("abcd", 1998);
Book book1 = new Book("efgh", 1999);
Book book2 = new Book("ijkl", 2000);
Book book3 = new Book("mnou", 2001);
Book book4 = new Book("prst", 2002);
Book book5 = new Book("wxyz", 2003);
List<Book> booksList = Arrays.asList(book0, book1, book2, book3, book4, book5);
System.out.printf("All books: %s%n", booksList);
System.out.println("Books published after the year 2000:");
for (Book book : booksList) {
if (book.getPubYear() > 2000) {
System.out.println(book);
}
}
}
}
输出:
All books: [Book[title='abcd', pubYear=1998], Book[title='efgh', pubYear=1999], Book[title='ijkl', pubYear=2000], Book[title='mnou', pubYear=2001], Book[title='prst', pubYear=2002], Book[title='wxyz', pubYear=2003]]
Books published after the year 2000:
Book[title='mnou', pubYear=2001]
Book[title='prst', pubYear=2002]
Book[title='wxyz', pubYear=2003]
注意:如果实际列表中的书籍是按出版年份排序的,请考虑向后迭代列表,并在看到少于2000年的年份时立即中断,或者更好地使用集合 二进制搜索(binarySearch)以在O(log n)时间内找到拆分点。
所以我的程序需要一种循环ArrayList类型。 关于它的唯一循环的事情是get(int index)方法,这是原始的: 我不能让它工作,因为我的班级看不到它,因为它是私人的。 另外,我不想为此使用任何外部库,因为我认为没有适合我需要的库,因为我不想要一个真正的circularArray,而只想要它的一部分功能,其余部分是常规的ArrayList。 所以我有两个问题:
foreach循环遍历列表值并将控制变量(var)依次设置为列表的每个元素 - 语法 (Syntax) Perl编程语言中foreach循环的语法是 - foreach var (list) { ... } 流程图 (Flow Diagram) 例子 (Example) #!/usr/local/bin/perl @list = (2, 20, 30, 40, 50); # foreach lo
我尝试将一个循环转换为一个循环在flutter中等待循环。我想要循环的元素是Firebase实时数据库中的快照。 我的函数如下所示: 我尝试了不同的方法,但是我没有让函数工作。 第一次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 第二次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 在所有的尝试中,我都得到了相同的错误。但是上述
问题内容: 需要将foreach循环中的值存储到数组中,需要帮助。 下面的代码不起作用,仅存储上次尝试的值,但这也不起作用,将不胜感激。 问题答案: 在循环外声明数组,并用于向数组添加项目:
如果我试图在java中查找遍历foreach循环的次数,还有比这更好的方法吗? 我知道我可以只使用一个普通的for循环并拥有一个迭代器I,但我只是想知道是否有一种更优雅的方法来使用foreach.tanks in prevair:) 编辑:正如Jon Skeet指出的,上面的代码将新的按钮实例分配给迭代变量。哎呀。基于其他评论,我相信最实用的使用是一个正常循环。这是我要用的版本。谢谢大家的帮助!