ORDERBY句を使用してSQLクエリからJavaArrayListにオブジェクトをロードしています。
(1) foreachループを使用してそのArrayListにアクセスし、ロードされた順序に戻すことはできますか?
(2)同様に、get(n)を使用して、同じSQL順序で要素を一貫して取得できますか?つまり、SQL行セットの3番目の要素が「x」の場合、get(2)は常にそれを取得しますか?
ORDERBY句を使用してSQLクエリからJavaArrayListにオブジェクトをロードしています。
(1) foreachループを使用してそのArrayListにアクセスし、ロードされた順序に戻すことはできますか?
(2)同様に、get(n)を使用して、同じSQL順序で要素を一貫して取得できますか?つまり、SQL行セットの3番目の要素が「x」の場合、get(2)は常にそれを取得しますか?
確かに、これがリストの仕組みです。それでも、 http://docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedHashSet.htmlを使用できます
Can I access that ArrayList with a foreach loop and get them back in the order in which they were loaded?
はい、リストは注文されたコレクションです。
Similarly, can I consistently get the elements in the same SQL order by using get(n)? I.e. if the 3rd element in the SQL rowset was "x", will get(2) always retrieve that?
はい、私が言ったように、それらは順序付けられています、それらが挿入された順序で、それらは同じ順序で取得することができます。
List<String> ls=new ArrayList<String>();
ls.add("A");
ls.add("B");
ls.add("C");
for(String s:ls)
System.out.println(s);
System.out.println(ls.get(1));
結果:
A
B
C
B
Yes ArrayList in Java is Ordered Collection. API says
List is an ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list.
When you load from SQL to ArrayList you should exactly insert in the same order as of SQL. code snippet should be like this
for (Each row starting from 0 in SQL) {
// add to arraylist using add method
list.add(sqlvalue);
}
for each iterator also maintain the same order.