これは、順序付けられたコレクション用です。 Java.util.List。言語デザイナーが最後の方法を含めなかったのはなぜですか?私が考えることができる唯一の理由は:
他の理由は?
APIの膨張がおそらく答えです。私の経験から、この機能が必要になったのはキューまたはスタックのみで、適切なメソッドを備えたジョブの正しいデータ構造でした。
last()
メソッドやlist.get(list.size()-1)
メソッドがないように、first()
メソッドはfifth()
と同じくらい簡単です。合成するのはそれほど難しくなく、専門分野です。 reverse()
リストとlist.get(0)
を使用して、last
アイテムを取得することもできます。簡単なことは、通常、独自の特殊なメソッドを取得しません。
_import Java.util.ArrayList;
import Java.util.List;
public class Main
{
public static void main(String[] args)
{
final List<String> l = new ArrayList<String>();
l.add("A");
l.add("B");
l.add("Z");
System.out.println("l.get(0) = " + l.get(0));
System.out.println("l.get(l.size()-1) = " + l.get(l.size() - 1));
}
}
_
次の出力になります
_l.get(0) = A
l.get(l.size()-1) = Z
_
List
インターフェースを実装するすべてのものが実際にlast()
の概念を持っていると仮定することもまたおかしいです。
_Java.util.LinkedList
_は、getLast()
およびgetFirst()
メソッドを定義します。残念ながら、これらのメソッドはそのインターフェースの1つで定義されていないため、LinkedListタイプを使用する必要があります。最後の要素のみに関心がある場合は、_Java.util.Queue
_インターフェースのpeek()
メソッドの使用を検討してください。 LinkedListはQueueを実装します。
基本的に、size()
にfor
ループを要求するか、イテレータを要求して反復し、whileまたはdoループで使用する必要があります。用途に合わせてお使いください。
イテレータは、エントリがまだあるかどうかを特定の時点で認識し、エントリがある場合は次のエントリを取得できるようにします。その後、「エントリが増えるまで」繰り返します。失敗します。
http://download.Oracle.com/javase/tutorial/collections/interfaces/collection.html の「トラバースコレクション」セクションを参照してください。