Heim  >  Artikel  >  Java  >  Analyse verschiedener Verwendungen der Java for-Schleife

Analyse verschiedener Verwendungen der Java for-Schleife

高洛峰
高洛峰Original
2017-01-21 16:09:101360Durchsuche

J2SE 1.5 bietet eine weitere Form der for-Schleife. Mit dieser Form der for-Schleife können Objekte von Typen wie Arrays und Sammlungen auf einfachere Weise durchlaufen werden. In diesem Artikel werden spezifische Möglichkeiten zur Verwendung dieser Schleife vorgestellt, erläutert, wie Sie Ihre eigenen Klassen definieren, die auf diese Weise durchlaufen werden können, und einige häufige Probleme mit diesem Mechanismus erläutert.

Wenn Sie in einem Java-Programm die Elemente in einem Array oder einer Sammlung einzeln „verarbeiten“ oder „durchlaufen“ möchten, verwenden Sie dazu normalerweise eine for-Schleife (natürlich verwenden Sie Andere Verschiedene Arten von Schleifen sind nicht unmöglich, aber ich weiß nicht, ob das daran liegt, dass das Wort „for“ relativ kurz ist oder ob die Bedeutung des Wortes „for“ für diese Art von Operation besser geeignet ist. die for-Schleife wird häufiger verwendet als andere Schleifen).

Zum Durchlaufen von Arrays wird diese Schleife im Allgemeinen wie folgt geschrieben:

Listing 1: Traditionelle Art, Arrays zu durchlaufen

 /* 建立一个数组 */
 int[] integers = {1, 2, 3, 4};
 /* 开始遍历 */
 for (int j = 0; j 3a83040afb86d37b63e6b4a446ac6b2b strings = new ArrayList10561f52a538bad7dc0ea5defc38baab();<br> strings.add("A");<br> strings.add("B");<br> strings.add("C");<br> strings.add("D");<br> for (String str : integers) {<br>     System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */<br> }<p><br></p><p>循环变量的类型可以是要被遍历的对象中的元素的上级类型。例如,用int型的循环变量来遍历一个byte[]型的数组,用Object型的循环变量来遍历一个Collection10561f52a538bad7dc0ea5defc38baab(全部元素都是String的Collection)等。</p><p>清单11:使用要被遍历的对象中的元素的上级类型的循环变量<br> String[] strings = {"A", "B", "C", "D"};<br> Collection10561f52a538bad7dc0ea5defc38baab list = java.util.Arrays.asList(strings);<br> for (Object str : list) {<br>     System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */<br> }</p><p>循环变量的类型可以和要被遍历的对象中的元素的类型之间存在能自动转换的关系。J2SE 1.5中包含了“Autoboxing/Auto-Unboxing”的机制,允许编译器在必要的时候,自动在基本类型和它们的包裹类(Wrapper Classes)之间进行转换。因此,用Integer型的循环变量来遍历一个int[]型的数组,或者用byte型的循环变量来遍历一个Collection9a55b736d1e9b58d26b48dae6facfa31,也是可行的。</p><p>清单12:使用能和要被遍历的对象中的元素的类型自动转换的类型的循环变量<br> int[] integers = {1, 2, 3, 4};<br> for (Integer i : integers) {<br>     System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */<br> }</p><p>注意,这里说的“元素的类型”,是由要被遍历的对象的决定的――如果它是一个Object[]型的数组,那么元素的类型就是Object,即使里面装的都是String对象也是如此。</p><p>可以限定元素类型的Collection</p><p>截至到J2SE 1.4为止,始终无法在Java程序里限定Collection中所能保存的对象的类型――它们全部被看成是最一般的Object对象。一直到J2SE 1.5中,引入了“泛型(Generics)”机制之后,这个问题才得到了解决。现在可以用Collectionb32f285eaba7a6752dff0bc229700674来表示全部元素类型都是T的Collection。</p><p>更多Java for循环的几种用法分析相关文章请关注PHP中文网!</p>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn