Insertar elementos en una ArrayList desde SQL ordenado

Estoy cargando objetos en un Java ArrayList desde una consulta SQL con un ORDEN POR cláusula.

(1) ¿Puedo acceder a esa ArrayList con un foreach bucle y recuperarlos en el orden en que fueron cargados?

(2) De manera similar, ¿puedo obtener los elementos en el mismo orden SQL de manera consistente usando obtener? Es decir, si el tercer elemento en el conjunto de filas de SQL era "x", ¿obtendrá (3) siempre recuperarlo?

preguntado el 31 de julio de 12 a las 11:07

Sí, si agrega los elementos en el orden de la consulta SQL. Muestra tu código por favor. -

a menos que realice operaciones de clasificación en arraylist . -

Por lo general, sí, pero depende de cómo cargue elementos de DB a ArrayList. Como dijo juergen d, muestra algo de código. -

3 Respuestas

Can I access that ArrayList with a foreach loop and get them back in the order in which they were loaded?

, Las listas son colecciones ordenadas.

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?

Como dije, están ordenados, en el orden en que se insertan se pueden recuperar en el mismo orden.

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));

Resultados:

A
B
C
B

Respondido 31 Jul 12, 11:07

seguro que puedes, así es como Lista obras. todavía puedes usar http://docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedHashSet.html

Respondido 31 Jul 12, 11:07

Sí, ArrayList en Java es una colección ordenada. API dice
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.

Cuando carga de SQL a ArrayList, debe insertar exactamente en el mismo orden que SQL. el fragmento de código debería ser así

for (Each row starting from 0 in SQL) {
  // add to arraylist using add method
  list.add(sqlvalue);
}

para cada iterador también se mantiene el mismo orden.

Respondido 31 Jul 12, 11:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.