ホームページ  >  記事  >  Java  >  Java for ループのいくつかの使用法の分析

Java for ループのいくつかの使用法の分析

高洛峰
高洛峰オリジナル
2017-01-21 16:09:101357ブラウズ

J2SE 1.5 は、別の形式の for ループを提供します。この形式の for ループを使用すると、配列やコレクションなどの型のオブジェクトをより簡単な方法で走査できます。この記事では、このループの具体的な使用方法を紹介し、この方法で走査できる独自のクラスを定義する方法を説明し、このメカニズムに関するいくつかの一般的な問題について説明します。

Java プログラムで、配列またはコレクション内の要素を 1 つずつ「処理」または「走査」する場合、通常は for ループを使用してこれを実現します (もちろん、他のタイプのループでも実行できます)不可能ではありません。単に for という単語の長さが比較的短いためなのか、それとも for という単語の意味がこの種の操作に適しているためなのかはわかりません。他のループよりもはるかに一般的に使用されます)。

配列を走査する場合、ループは通常次のように記述されます:

リスト 1: 配列を走査する従来の方法

 /* 建立一个数组 */
 int[] integers = {1, 2, 3, 4};
 /* 开始遍历 */
 for (int j = 0; j 2d48b001f2f6362940647b0db6e53587 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>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。