Java枚举vs迭代vs ForLoop
(枚举、迭代器、循环)之间的区别是什么 在下面的代码中,每个示例(枚举、迭代器、循环)都获得相同的输出]Java枚举vs迭代vs ForLoop,java,loops,iterator,enumeration,Java,Loops,Iterator,Enumeration,(枚举、迭代器、循环)之间的区别是什么 在下面的代码中,每个示例(枚举、迭代器、循环)都获得相同的输出] 但我需要知道他们之间的真正区别是什么?是否有具体的情况下,我应该使用其中一个,而不能使用其他?其中一种方法相对于其他方法有什么优势?关于枚举与迭代,请参见: 迭代器 在Java集合框架中取代枚举。 迭代器与枚举有两种不同:迭代器允许 调用方在调用过程中从基础集合中删除元素 具有定义良好语义的迭代。方法名已被删除 改进。 如果可读性很重要 喜欢这个 for (String s : listof
但我需要知道他们之间的真正区别是什么?是否有具体的情况下,我应该使用其中一个,而不能使用其他?其中一种方法相对于其他方法有什么优势?关于枚举与迭代,请参见: 迭代器 在Java集合框架中取代枚举。 迭代器与枚举有两种不同:迭代器允许 调用方在调用过程中从基础集合中删除元素 具有定义良好语义的迭代。方法名已被删除 改进。
如果可读性很重要 喜欢这个
for (String s : listofStrings)
{
...
}
结束
for(迭代器iter=listofstring.Iterator();iter.hasNext();)
{
字符串s=iter.next();
...
}
请注意,如果需要在迭代时删除元素,则需要使用迭代器
比如说,
List<String> list = getMyListofStrings();
for (Iterator<String> iter = list.iterator(); iter.hasNext(); )
{
String s = iter.next();
if (someCondition) {
iter.remove();
}
}
List List=getMyListofStrings();
for(迭代器iter=list.Iterator();iter.hasNext();)
{
字符串s=iter.next();
如果(某些条件){
iter.remove();
}
}
不能使用for(字符串s:myList)
删除列表中的元素。
还请注意,在遍历数组时,foreach(或增强型for)只能用于获取元素,不能修改数组中的元素。枚举VS迭代器 迭代器主要用于非线程安全集合。迭代器的设计方式是,每当对集合进行并发修改时,迭代器就会失败,也就是说,如果在多线程环境中使用为单线程环境创建的集合,并且在遍历时线程对其进行更改,则遍历会失败 枚举仅用于线程安全集合。当在多线程环境中使用这样的集合时,可以保证数据的一致性,所以枚举永远不会失败 为了更好地了解他们的内部工作
集合及其迭代器和枚举之间具有更强的has-A关系,即双方的存在相互依赖。首先,在Java SE 5或更高版本的应用程序中,您不会使用
Vector
。迭代器和枚举器更擅长模糊处理。如果您想了解更高抽象级别的功能,请阅读本教程:如果您在数组中反向迭代,请使用普通的for(int i=…)
,您可以很好地删除元素。实时删除哪一个元素应该在哪种情况下使用?
List<String> list = getMyListofStrings();
for (Iterator<String> iter = list.iterator(); iter.hasNext(); )
{
String s = iter.next();
if (someCondition) {
iter.remove();
}
}