java数组编译后_Java中数组和集合的foreach操作编译后究竟是啥
【本文版權歸微信公眾號"代碼藝術"(ID:onblog)所有,若是轉載請務必保留本段原創聲明,違者必究。若是文章有不足之處,歡迎關注微信公眾號私信與我進行交流!】
今天和同事在關于foreach編譯后是for循環還是迭代器有了不同意見,特做了個Demo,了解一下。
是啥自己來看吧!
public class Demo {
public static void main(String[] args) {
int[] ints = new int[5];
for (int s : ints) {
System.out.println(s);
}
String[] intss = new String[5];
for (String s : intss) {
System.out.println(s);
}
List strings = new ArrayList<>();
for (String s : strings) {
System.out.println(s);
}
Map map = new HashMap<>();
for (Map.Entry e: map.entrySet()) {
System.out.println(e.getKey());
}
}
}
編譯后查看的源碼:
public class Demo {
public Demo() {
}
public static void main(String[] args) {
int[] ints = new int[5];
int[] var2 = ints;
int var3 = ints.length;
int var4;
int s;
for(var4 = 0; var4 < var3; ++var4) {
s = var2[var4];
System.out.println(s);
}
String[] intss = new String[5];
String[] var8 = intss;
var4 = intss.length;
for(s = 0; s < var4; ++s) {
String s = var8[s];
System.out.println(s);
}
List strings = new ArrayList();
Iterator var10 = strings.iterator();
while(var10.hasNext()) {
String s = (String)var10.next();
System.out.println(s);
}
Map map = new HashMap();
Iterator var13 = map.entrySet().iterator();
while(var13.hasNext()) {
Entry e = (Entry)var13.next();
System.out.println(e.getKey());
}
}
}
總結:
foreach對于數組來說依舊是for循環,對List、Map集合來說是迭代器。
版權聲明
【本文版權歸微信公眾號"代碼藝術"(ID:onblog)所有,若是轉載請務必保留本段原創聲明,違者必究。若是文章有不足之處,歡迎關注微信公眾號私信與我進行交流!】
總結
以上是生活随笔為你收集整理的java数组编译后_Java中数组和集合的foreach操作编译后究竟是啥的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java看log技巧_Log日志框架的学
- 下一篇: java 字符串 面试_Java 字符串