我对VB非常好,我有一个项目,我需要检查一个数组。如果数组中的相同项目存在两次或更多次,则需要将其更改为不存在的项目。现在,我正在上课,他们让我们在这个项目中使用Java。
我想知道Java中每个循环的等效值是多少?我检查了JavaDocs,它只有常规for循环的信息,我没有注意到任何关于a循环的部分。
答案 0 :(得分:1)
它在Java中比VB更微妙。您可以在此处找到Oracle文档中的官方文档(底部):
提供的示例是:
// Returns the sum of the elements of a
int sum(int[] a) {
int result = 0;
for (int i : a)
result += i;
return result;
}
希望有所帮助。注意不要在循环中删除或添加元素,否则会出现并发修改异常。
答案 1 :(得分:0)
试
String arr [] = // you decide how this gets initialized
for (String obj: arr) {
}
答案 2 :(得分:0)
这称为“迭代集合”。数组可以隐式转换为集合,因此您可以使用“增强的for循环”以相同的方式迭代数组。
List<String> names = new LinkedList<>();
// ... add some names to the collection
for(name:names) {
System.out.println(name);
}
我不确定VB是否有集合 - 它们是Java的重要组成部分,我建议你研究它们。
当然,这在Java 8中有所改变,尽管你会发现一个集合仍然是forEach()的支柱。
List<String> names = new LinkedList<>();
// ... add some names to the collection
names.forEach(name -> System.out.println(name));
答案 3 :(得分:0)
for each
循环(也称为the enhanced for loop
)如下:
for (String name : names) {
// here, the loop will work over each element of 'names',
// with the variable name with which to access each element
// being 'name', and output it
System.out.println(name);
}
正常for loop
如下:
for (int i = 0; i < max; i++) {
// here, i will iterate until max, then the loop will stop.
// any array access here has to be done manually using i, which increments.
}
如果来自names数组的插入顺序很重要,请继续将对象添加到LinkedHashSet<String>
,然后使用for循环或增强for for循环或迭代器,查看名称列表并将每个名称添加到LinkedHashSet
。如果传递名称的add
方法返回false
,则生成新名称并添加。
如果广告订单不重要,请改用HashSet<String>
。
最后,如果数组很重要(String[] bla = map.toArray(new String[0])
),请转换回数组,或输出地图的toString()
。