[英]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.