Java 如何遍历arraylist并打印包含单词的索引?
我想知道如何遍历arraylist并打印出包含用户输入到扫描仪中的数字的所有索引。如果数字不在扫描仪中,则它将打印输出值不在列表中。我的课程有两门课 下面是我的娱乐课:Java 如何遍历arraylist并打印包含单词的索引?,java,arraylist,Java,Arraylist,我想知道如何遍历arraylist并打印出包含用户输入到扫描仪中的数字的所有索引。如果数字不在扫描仪中,则它将打印输出值不在列表中。我的课程有两门课 下面是我的娱乐课: public class Real_Entertainment { String BookName; String Author; double Rating; int Purchases;
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;
}
}
下面是包含arraylist的主类:
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()
}
}
}
}
import java.util.Scanner;
导入java.util.ArrayList;
公共类Real_Main
{
公共静态void main(字符串[]args)
{
ArrayList print=新的ArrayList();
Real_Entertainment Book1=新Real_Entertainment(“镍币男孩”,“科尔森怀特黑德”,43500000);
Real_Entertainment Book2=新Real_Entertainment(“又是Olive”,“Elizabeth Strout”,6321000);
Real_Entertainment Book3=新Real_Entertainment(“姜饼”、“海伦·奥耶米”,2681000);
Real_Entertainment Book4=新的Real_Entertainment(“在地球上,我们只是短暂的美丽”,“Ocean Vuong”,2421000);
打印。添加(第1册);
打印.添加(第2册);
打印.添加(第3册);
打印.添加(第4册);
findPrimitiveValue(打印版);
}
公共静态void findPrimitiveValue(ArrayList打印)
{
扫描仪=新的扫描仪(System.in);
System.out.println(“输入一个数值:”);
int input=scanner.nextInt();
布尔foundInfo=false;
对于(int i=0;i
我试图将购买的值设置为用户输入的值,但我一直收到一个错误 我为您重构了代码
- 类、字段和参数名称符合约定
- 将您的
类转换为一个Java Bean,它还具有一个书籍
方法,便于打印toString()
- 通常使用不太神秘的名称
- 使用Java流进行更好的集合处理
package de.scrum_master.stackoverflow.q60461642;
公共课堂用书{
私有字符串名称;
私有字符串作者;
私人双重评级;
私人采购;
公共图书(字符串名称、字符串作者、双重评级、整数购买){
this.name=名称;
this.author=作者;
这个。评级=评级;
这是购买=购买;
}
@凌驾
公共字符串toString(){
返回“Book{”+
“name=”+name+“\”+
“,author='”+author+'\''+
“,额定值=”+额定值+
“,采购=”+采购+
'}';
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getAuthor(){
返回作者;
}
公共void setAuthor(字符串编写器){
this.author=作者;
}
公共双重评级(){
回报率;
}
公共评级(双重评级){
这个。评级=评级;
}
public int getPurchases(){
退货;
}
公共采购(整数采购){
这是购买=购买;
}
}
驱动程序应用程序:
package de.scrum_master.stackoverflow.q60461642;
导入java.util.array;
导入java.util.List;
导入java.util.Scanner;
公共类应用程序{
私有静态列表书=Arrays.asList(
新书(《镍币男孩》,《科尔森·怀特黑德》,43500000页),
新书(《又是奥利弗》,《伊丽莎白·斯特劳特》,《6321000》),
新书(“姜饼”、“海伦·奥耶米”,2681000),
新书(《在地球上我们短暂的美丽》,《海洋之王》,24211000),
新书(“香水”,“帕特里克·苏斯金”,65000)
);
公共静态void main(字符串[]args){
印刷书籍();
findBooksByNumberOfPurchases();
}
私有静态void printBooks(){
System.out.println(“图书列表”);
books.stream().forEach(System.out::println);
System.out.println(“\n”);
}
私有静态void findBooksByNumberOfPurchases(){
扫描仪=新的扫描仪(System.in);
System.out.println(“输入要搜索的购买数量:”);
int input=scanner.nextInt();
books.stream()
.filter(book->book.getPurchases()==输入)
.forEach(System.out::println);
}
}
控制台日志:
书籍列表:
书籍{name='The Nickel Boys',作者='Colson Whitehead',评级=4.3,购买量=500000}
书籍{name='Olive,再次,'作者='Elizabeth Strout',评级=6.0,购买量=321000}
书籍{name='Gingerbread',author='Helen Oyeymi',评级=2.0,购买量=681000}
书籍{name='On Earth We's Briefly Family',作者='Ocean Vuong',评级=2.0,购买量=421000}
书籍{name='香水',作者='Patrick Süskind',评级=6.0,购买量=500000}
输入要搜索的购买数量:
500000
书籍{name='The Nickel Boys',作者='Colson Whitehead',评级=4.3,购买量=500000}
书籍{name='香水',作者='Patrick Süskind',评级=6.0,购买量=500000}
“我一直收到一个错误。”-你能把错误包括进来吗?当然,线程“main”java.lang中有异常。错误:未解决的编译问题:方法getPurchases()对于类型Real\u Entertainment是未定义的。方法getPurchases()对于类型Real\u Entertainment是未定义的。你没有方法getPurchases()
…我知道,但是我会用什么来检查它是否匹配,我有一个方法叫做getPurchases()if(print.get(I).getPurchases()==input)
,尽管我必须说print
对于对象列表来说是个糟糕的名字。。。考虑命名它