Java 无法打印出所需的输出

Java 无法打印出所需的输出,java,arrays,eclipse,linked-list,Java,Arrays,Eclipse,Linked List,因此,我正在创建一个程序,从两个不同的文件中读取客户详细信息和订单详细信息。我创建了一些方法来读取文件,将数据存储在customers对象中,然后将customers对象添加到linkedlist中。。现在,当我尝试对订单文件执行相同操作时,我得到了错误的输出。因此,在下面显示的代码中,我试图检查在订单文件中输入的客户名称是否与存储在客户linkedlist中的名称匹配。。假设order.txt文件中有两行: Ord101 true James Ord102 false Jim 通过我所做的工

因此,我正在创建一个程序,从两个不同的文件中读取客户详细信息和订单详细信息。我创建了一些方法来读取文件,将数据存储在customers对象中,然后将customers对象添加到linkedlist中。。现在,当我尝试对订单文件执行相同操作时,我得到了错误的输出。因此,在下面显示的代码中,我试图检查在订单文件中输入的客户名称是否与存储在客户linkedlist中的名称匹配。。假设order.txt文件中有两行:

Ord101 true James
Ord102 false Jim
通过我所做的工作,我得到以下输出:

Ord102 false Jim
Ord102 false Jim
而不是获得正确的输出,即:

Ord101 true James
Ord102 false Jim
因为James和Jim都是客户文件和linkedlist中的名字。下面是我读取订单文件的代码:

public void readFileOrder() {
Scanner y;
String b,c,d;
LinkedList<Customers> list=new LinkedList<Customers>(); //another method was already created to add data inside list and its working so list contains data

LinkedList<order> list1=new LinkedList<order>();
Boolean isOpen;
order Order1=new order();
while(y.hasNext())
{

b=y.next();
isOpen=y.nextBoolean();
d=y.next();
System.out.println(list);
Customers customers1=new Customers();
for(int i=0;i<list.size();i++)    //this is where i'm checking if the customer name in the order file matches the value in list
{
 if(list.get(i).getName().equals(d))
  {
   customers1=list.get(i);
   Order1.setCustomer(customers1);
Order1.setName(b);
Order1.setIsOpen(isOpen);
list1.add(Order1);
   }
}


}

for(int j=0;j<list1.size();j++)
{
System.out.println(list1.get(j).getCustomer()+" and "+list1.get(j).getName()+" and "+list1.get(j).getIsOpen());
}
}

您将一次又一次地向列表中添加对相同
顺序的引用,每次都会覆盖在循环的上一次迭代中设置的属性。相反,在循环内创建一个
新订单

换言之,改变这一点:

order Order1=new order();
while(y.hasNext()) {
为此:

while(y.hasNext()) {
    order Order1=new order();

奇怪的是,表示单个客户的类被称为
Customers
。除非我漏掉了什么。你要对整个客户列表重复多次,文件中的每个订单一次。这不是一个大问题,尤其是当您的文件很小时,但是您是否考虑过使用
HashMap
进行即时名称查找?
order Order1=new order();
while(y.hasNext()) {
while(y.hasNext()) {
    order Order1=new order();