gpt4 book ai didi

java - 如何迭代数组列表并打印包含单词的索引?

转载 作者:行者123 更新时间:2023-12-01 18:11:33 25 4
gpt4 key购买 nike

我想知道如何迭代数组列表并打印出包含用户放入扫描仪的数字的所有索引。如果扫描仪中没有该号码,则它将打印出该号码不在列表中。我的程序中有两个类(class)。

以下是我的娱乐课:

         public class Real_Entertainment 
{
String BookName;
String Author;
double Rating;
int Purchases;


public Real_Entertainment(String BookName, String Author, double Rating, int Purchases)
{
this.BookName = BookName;
this.Author = Author;
this.Rating = Rating;
this.Purchases = Purchases;
}
public void setBookName(String BookName)
{
this.BookName = BookName;
}
public void setAuthor (String Author )
{
this.Author = Author;
}
public void setRating (double Rating)
{
this.Rating = Rating;
}
public void setPurchased (int Purchases)
{
this.Purchases = Purchases;
}


}

下面是包含数组列表的主类:

    import java.util.Scanner;
import java.util.ArrayList;
public class Real_Main
{




public static void main(String[] args)
{


ArrayList<Real_Entertainment> print = new ArrayList<Real_Entertainment>();
Real_Entertainment Book1 = new Real_Entertainment("The Nickel Boys ", "Colson Whitehead", 4.3, 500000);
Real_Entertainment Book2 = new Real_Entertainment("Olive, Again", "Elizabeth Strout", 6, 321000);
Real_Entertainment Book3 = new Real_Entertainment("Gingerbread", "Helen Oyeyemi", 2, 681000);
Real_Entertainment Book4 = new Real_Entertainment("On Earth We're Briefly Gorgeous", "Ocean Vuong", 2, 421000);

print.add(Book1);
print.add(Book2);
print.add(Book3);
print.add(Book4);



findPrimitiveValue(print);


}

public static void findPrimitiveValue(ArrayList<Real_Entertainment> print)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a Numeric Value:" );
int input = scanner.nextInt();
boolean foundInfo = false;
for(int i = 0; i < print.size(); i++)
{
if(print.get(i).() == input || print.get(i).() == input)
{
System.out.println("This is the information found: " );
System.out.println()
}
}

}

}

我试图将购买的值(value)设置为用户输入的值,但我一直收到错误。

最佳答案

我重构了你的代码

  • 符合约定的类、字段和参数名称,
  • 将您的 Book 类转换为 Java Bean,该 Java Bean 还具有用于轻松打印的 toString() 方法,
  • 一般使用不太神秘的名称,
  • 使用 Java 流进行更好的集合处理。

我还添加了一个示例,说明如何进行操作,例如:搜索一本书的购买次数完全匹配的内容。我还添加了一本具有相同购买次数的额外书籍,以便我们可以看到多个搜索结果。

数据类:

package de.scrum_master.stackoverflow.q60461642;

public class Book {
private String name;
private String author;
private double rating;
private int purchases;

public Book(String name, String author, double rating, int purchases) {
this.name = name;
this.author = author;
this.rating = rating;
this.purchases = purchases;
}

@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", rating=" + rating +
", purchases=" + purchases +
'}';
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAuthor() {
return author;
}

public void setAuthor(String author) {
this.author = author;
}

public double getRating() {
return rating;
}

public void setRating(double rating) {
this.rating = rating;
}

public int getPurchases() {
return purchases;
}

public void setPurchases(int purchases) {
this.purchases = purchases;
}
}

驱动程序应用程序:

package de.scrum_master.stackoverflow.q60461642;

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Application {
private static List<Book> books = Arrays.asList(
new Book("The Nickel Boys", "Colson Whitehead", 4.3, 500000),
new Book("Olive, Again", "Elizabeth Strout", 6, 321000),
new Book("Gingerbread", "Helen Oyeyemi", 2, 681000),
new Book("On Earth We're Briefly Gorgeous", "Ocean Vuong", 2, 421000),
new Book("Perfume", "Patrick Süskind", 6, 500000)
);

public static void main(String[] args) {
printBooks();
findBooksByNumberOfPurchases();
}

private static void printBooks() {
System.out.println("Books list:");
books.stream().forEach(System.out::println);
System.out.println("\n");
}

private static void findBooksByNumberOfPurchases() {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number of purchases to search for:");
int input = scanner.nextInt();
books.stream()
.filter(book -> book.getPurchases() == input)
.forEach(System.out::println);
}
}

控制台日志:

Books list:
Book{name='The Nickel Boys', author='Colson Whitehead', rating=4.3, purchases=500000}
Book{name='Olive, Again', author='Elizabeth Strout', rating=6.0, purchases=321000}
Book{name='Gingerbread', author='Helen Oyeyemi', rating=2.0, purchases=681000}
Book{name='On Earth We're Briefly Gorgeous', author='Ocean Vuong', rating=2.0, purchases=421000}
Book{name='Perfume', author='Patrick Süskind', rating=6.0, purchases=500000}


Enter the number of purchases to search for:
500000
Book{name='The Nickel Boys', author='Colson Whitehead', rating=4.3, purchases=500000}
Book{name='Perfume', author='Patrick Süskind', rating=6.0, purchases=500000}

关于java - 如何迭代数组列表并打印包含单词的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60461642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com