簡體   English   中英

我的 isEmpty 方法不起作用,我不知道為什么

[英]My isEmpty method isn’t working and I'm not sure why

我只是想檢查 ArrayList 是否為空,所以我查看了 java 庫,發現 java 中有一個 isEmpty 方法,但我的代碼不會在這里編譯。 一直說找不到方法。 我沒有在我的代碼中定義該方法,但我認為我不必這樣做,因為它是 java 定義的方法,並且我已經導入了 java.util.ArrayList。 如果不再使用此方法,是否還有其他方法可以檢查 ArrayList 是否為空?

else if((userChoice.equals("S")) || (userChoice.equals("s"))){
    boolean empty = this.cat.isEmpty();
    if (empty == true){
        System.out.println("there is nothing i this catalog");
    }
    else{
        this.cat.printList();
    }
}

這是我打電話給它的貓

this.name = name;
this.cat = new Catalog();
//CREATE ARRAYLIST HERE
cat.addItem(new Music(1111,"White and Nerdy",2.50,"\"Weird Al\" Yankovic"));
cat.addItem(new Music(2222,"Amish Paradise",2.22,"\"Weird Al\" Yankovic"));
cat.addItem(new Music(3333,"The Saga Begins",2.00,"\"Weird Al\" Yankovic"));
cat.addItem(new Movie(4444,"UHF",9.99,"\"Weird Al\" Yankovic"));
cat.addItem(new Movie(5555,"The Dark Crystal",8.99,"\"Jim Henson"));
cat.addItem(new Movie(6666,"Die Hard",13.99,"Bruce Willis"));
cat.addItem(new Book(7777,"When I Grow Up",7.98,"\"Weird Al\" Yankovic"));
cat.addItem(new Book(8888,"The Chronicles of Pern: First Fall",5.99,"\"Anne McCaffrey"));
cat.addItem(new Book(9999,"Get gud you scrub",2.50,"Steve \"Troll\" Rathier"));

編輯:這是我的目錄 class 的構造函數

public Catalog()
    {
        //makes empty arraylist
        // initialise instance variables
        items = new ArrayList<>(MAX);
        size = 0;

    }

有一個簡單的方法:

public class MyClass {
    List<Object> myObjects;
    Object[] myArrayObjects;

    void myMethod() {
        if (myArrayObjects == null || myArrayObjects.length == 0) {
            //Array is empty
        } else {
            //Array has some data
        }
        if (myObjects == null || myObjects.size() == 0) {
            //List is empty
        } else {
            //List has some data
        }
    }
}

我認為另一個更好的解決方案是這樣的

    public class Catalog {
        List<Object> items;

        public Catalog() {
            items = new ArrayList<>();
        }

        public void addItem(Object object) {
            items.add(object);
        }

        public boolean isEmpty() {
            return items.isEmpty();
        }

        public int size() {
            return items.size();
        }
    }

class 的用法是這樣的

public class MyClass {

    Catalog catalog;

    public MyClass() {
        this.catalog = new Catalog();
    }

    void printCatalog() {
        if (catalog.isEmpty()) {
            //catalog is empty
        } else {
            //catalog has some data you can print them
        }
    }

    void addItems(Object object) {
        catalog.addItem(object);
    }
}

java.util.ArrayList 也有size()方法。 您可以使用它來檢查列表大小,如果為 0,則您的列表為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM