繁体   English   中英

Java:ArrayList发出混乱的结果

[英]Java: ArrayList giving out a gibberish result

问题如下:屏幕上将显示6个单词。 这些单词是从列表中随机选择的。 当我编写代码时,没有出现任何错误,但是当我在Eclipse中运行它时,我在控制台“ package.wordsContainer@659e0bfd”中得到了以下混乱的结果。

我做错了什么?

public class wordsContainer {
    Collection<String> wordList = new ArrayList<String>();

    public void wordGroup1() {
        wordList.add("Ant");
        wordList.add("Almond");
        wordList.add("Atom");
        wordList.add("Affair");
        wordList.add("Ample");
        wordList.add("Blue");
        wordList.add("Black");
        wordList.add("Bronze");
        wordList.add("Beauty");
        wordList.add("Beautiful");
        wordList.add("Batter");
        wordList.add("Crazy");
    }


    public Collection<String> getRandomWords() {
        wordGroup1();
        LinkedList<String> wordLinkedList = new LinkedList<String>(wordList);
        ArrayList<String> subList = new ArrayList<String>();

        int i = 0;
        while (i < 6) {
            int index = (int) Math.random() * 10;
            if (!subList.contains(wordLinkedList.get(index))) {
                subList.add(wordLinkedList.get(index));
                i++;
            }
        }
        return subList;
    }
}



public class wordsContainerTest {
    public static void main(String[] args) {
        wordsContainer list1 = new wordsContainer();

        list1.wordGroup1();

        System.out.println(list1);
        System.out.println(list1.getRandomWords());

    }
}

对象wordsContainer的哈希码不是乱码的十六进制表示wordsContainer

该结果是从线

   System.out.println(list1); //wordsContainer 

不是来自ArrayList。

为了正常工作,您需要在类wordsContainer重写toString方法

要了解"package.wordsContainer@659e0bfd"到底是什么,请阅读我很久以前写的答案。

https://stackoverflow.com/a/17878495/1927832

除此之外,请遵循Java命名约定,类名以大写字母开头。

 System.out.println(list1); //wordsContainer 

您不能直接打印出对象,而只是打印出对内存中保存对象的位置的引用,这就是您得到的奇怪输出。 您必须重写对象中的toString()方法或单独打印出所需的对象属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM