gpt4 book ai didi

java - ArrayList作为存档

转载 作者:行者123 更新时间:2023-12-01 11:47:40 37 4
gpt4 key购买 nike

我的任务是:
该程序应从用户读取项目。读取用户的所有项目后,程序将打印每个项目的信息。

对于每个项目,应读取其标识符和名称。如果标识符或名称为空,则程序停止要求输入,并打印所有项目信息。修改程序,以便在输入项目后,每个项目最多打印一次。如果两个项目的标识符相同,则应将其视为相同(例如,不同国家/地区的名称可能有所不同)。

如果用户多次输入相同的项目,则打印将使用首先添加的项目。
我已经完成了下面的代码,但仍会添加具有相同标识符的项目。

为什么?我该如何解决?

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);
ArrayList<String> itemsName = new ArrayList();
ArrayList<String> itemsIdentifier = new ArrayList();

while(true){
System.out.println("Identifier? (emppty will stop)");
String identifier = scanner.nextLine();
if( identifier.isEmpty()){
break;
}
System.out.println("Name? (emppty will stop");
String name = scanner.nextLine();
if(name.isEmpty()){
break;
}
if(!(itemsIdentifier.contains(identifier))){
itemsIdentifier.add(identifier);
}
if(!(itemsName.contains(name))){
itemsName.add(name);
}
}

System.out.println("==Items==");
int j = 0;
for(String i: itemsIdentifier){
System.out.println(i + ": "+ itemsName.get(j));
j++;
}

}
}

最佳答案

我认为您的代码存在的问题是,即使未在以下行中将name添加到itemsName列表中,您也正在将identifier添加到itemsIdentifier列表中

if(!(itemsIdentifier.contains(identifier))){
itemsIdentifier.add(identifier);
}
if(!(itemsName.contains(name))){
itemsName.add(name);
}

理想情况下,您既不应该同时添加名称和标识符,也不添加任何内容?

关于java - ArrayList作为存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61008693/

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