我如何打印迭代LinkedList的void方法

时间:2018-05-20 17:04:01

标签: java

我正在创建一个监控房屋价格,地址和卧室数量的课程。我正在尝试为twoBeds方法调用结果。很确定我的Sysout完全错了,但我不知道从哪里开始。

public class House {

    int price;
    int bedrooms;
    String address;

    public House(int a, int b, String c) {
        price = a;
        bedrooms = b;
        address = c;
    }

    static List<House> agency = new LinkedList<House>();

    public static int noHouse() {
        return agency.size();
    }

    public static void twoBeds() {
        for (ListIterator<House> it = agency.listIterator(); it.hasNext(); ) {
            House h = it.next();
            if (h.bedrooms == 2) {
                System.out.println(h.address);
            }
        }
    }

    public static void main(String[] args) {
        House h1 = new House(12, 2, "address");
        agency.add(h1);
        System.out.println(twoBeds());
    }
}

1 个答案:

答案 0 :(得分:1)

System.out.println()接受参数,void返回类型表示没有任何内容可以返回。

您需要返回一些内容进行打印。

选项1:不要在System.out中传递void函数:

public static void main(String[] args) {
    House h1 = new House(12, 2, "address");
    agency.add(h1);
    twoBeds();
}

选项2:更改twoBeds()的返回类型:

public static List<String> twoBeds() {
    List<String> matchedAddresses = new ArrayList<>();
    for (ListIterator<House> it = agency.listIterator(); it.hasNext(); ) {
        House h = it.next();
        if (h.bedrooms == 2) {
            matchedAddresses.add(h.address);
        }
    }
    return matchedAddresses;
}