首先,我必须说我在学校学过Java (基础知识……)和C++在大学(OOP)。很快,我将编写一个Java项目,现在我正在寻找Java中的STL等价物。
我正在学习使用Java语言中的迭代器,我一直在寻找一种方法来访问迭代器的内容,而不使用方法next(),previous() (我见过here)。我指的是对象的cast: iterator,就像指针中的运算符*。当我编写(Object)obj
时,代码会编译,但我得到的是Java.lang.ClassCastException
。
发布于 2016-03-10 05:02:28
与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()
。
https://stackoverflow.com/questions/35902175
复制相似问题