如何将信息添加到对象类?

时间:2015-05-08 02:33:53

标签: java data-structures linked-list

tf dir

现在我想将一个客户端添加到收银员[0]我这样做:

tf property *

一切正常但是当我想要打印收银员[1]的大小时,它会返回1,但它应该返回0,因为我没有向收银员添加任何人[1]。关于什么是错的任何想法?

class Client{
String name;

Client(String name){
this.name=name;
}

Client (){
name=null;
}
}

class Cashier{

LinkedList <Client> cashierclients;


Cashier(LinkedList<Client> cashierclients){
this.cashierclients=cashierclients;
}
Cashier(){
//this.cashierclients=null;
}

}
class test{
public static void main(String args []){

LinkedList<Client> l=new LinkedList<Client>();

//i do some scans here to add the names of persons to the LinkedList l                   

Cashier [] cashier=new Cashier[numberofcashiers];

for(int i=0;i<numberofcashiers; i++){
    cashier[i]=new Cashier();
}

2 个答案:

答案 0 :(得分:0)

以下代码

        for(int i=0; i<10; i++){
            cashier[i].cashierclients=empty;
        }

使收银员[i] .cashierclients指向同一个对象

所以你可以找到

System.out.println(cashier[0].cashierclients == cashier[1].cashierclients);

等于true

我认为你应该将空格改为新的LinkedList()

将解决问题

答案 1 :(得分:0)

该程序现在正在运行,它显示收银员[1]大小的错误,应该返回0而不是1

import java.util.*;
class Client {
String name;

Client(String name) {
    this.name = name;
}

Client() {
    name = null;
}
}

class Cashier {

LinkedList<Client> cashierclients;


Cashier(LinkedList<Client> cashierclients) {
    this.cashierclients = cashierclients;
}

Cashier() {
//this.cashierclients=null;
}

}

public class test {
 public static void main(String args[]) {

    LinkedList<Client> l = new LinkedList<Client>();

// i created this LinkedList to solve the  nullpointerexception error

LinkedList<Client> empty =new LinkedList<Client>();

Client client1=new Client("Person1");
l.addLast(client1);

    Cashier[] cashier = new Cashier[10];

    for (int i = 0; i < 10; i++) {
        cashier[i] = new Cashier();
    }

// i did this to solve the  nullpointerexception error

for(int i=0; i<10; i++){
    cashier[i].cashierclients=empty;
}

cashier[0].cashierclients.addLast(l.get(0));

System.out.println(cashier[1].cashierclients.size());
//this should return zero
System.out.println(cashier[1].cashierclients.size());

}
}