首先,我必须说我在学校学习了Java(基础知识......)和大学里的C ++(OOP)。很快我将编写一个Java项目,现在我正在寻找Java中的STL等价物。
我正在学习在Java中使用迭代器,我一直在寻找一种方法来访问迭代器的内容而不使用next(),previous()方法(我已经使用过了)见here)。
我的意思是演员:Object的迭代器,就像指针中的operator *。
我写(Object)obj
时会编译代码,但我得到Java.lang.ClassCastException
。
答案 0 :(得分:3)
与STL容器等效的Java是Collection
,List
,Set
和Map
接口。这些接口最常见的具体实现是ArrayList
,HashSet
,TreeSet
,HashMap
和TreeMap
。
迭代器是Java中一个古老的,非常常用的接口。您通常不需要使用迭代器。相反,使用增强的for循环语法直接循环容器:
List<String> names = new ArrayList<>();
for (String name: names) {
System.out.printf("Hello %s%n!", name);
}
如果您使用迭代器,则调用next()
是访问容器元素的方式。每次调用都会返回集合中的下一个元素。没有其他办法。迭代器不是指针;您无法通过解除引用或转换内容或类似内容来访问其内容。你拨打next()
。