Lista de objetos de Java ordenar por objeto específico que no está la clasificación

Karthikeyan:

Estoy teniendo la siguiente JSONArray la que estoy tratando de solucionar el problema. Así, por la mañana que la conversión de mi JSONArray en ArrayList luego estoy clasificación y convertir de nuevo en JSONArray.

Por favor, encontrar el JSONArray inicial (que no está en orden de clasificación).

[  
   {  

      "code":"TE-7000-8003-W",
      "id":"13342",

   },
   {  
      "code":"TE-7000-8003",
      "id":"13163",
   },
   {  
      "code":"TE-7000-8003-WK",
     "id":"11573",
   },
   {  
      "code":"TE-7000-8003S",
      "id":"11565",

   },
   {  
      "code":"TE-7000-8003-K",
      "id":"11557",
   }
]

Por favor, encontrar el código debajo de la cual estoy convirtiendo mi JSONArray en ArrayList y ordenarlos.

Item item=null;
List<Item> newItemList = new ArrayList<Item>();
for (int i=0;i<resultJSONArray.length();i++) {
    JSONObject jobj = resultJSONArray.getJSONObject(i);
    item = new Item();
    item.setId(jobj.optString("id"));
    item.setCode(jobj.optString("code"));
    newItemList.add(item);
}

 newItemList
  .stream()
  .sorted((object1, object2) -> object1.getCode().compareTo(object2.getCode()));

Iterator<Item> itr = newItemList.iterator();
while(itr.hasNext()) {
    Item item1=itr.next();
    System.out.println("Item----->"+item1.getCode());
}

Lo que sigue es la salida de la mañana conseguir que no se forma ordenada

Item----->TE-7000-8003-W
Item----->TE-7000-8003
Item----->TE-7000-8003-WK
Item----->TE-7000-8003S
Item----->TE-7000-8003-K

Estoy esperando el resultado, como a continuación:

Item----->TE-7000-8003
Item----->TE-7000-8003S
Item----->TE-7000-8003-K
Item----->TE-7000-8003-W
Item----->TE-7000-8003-WK
Mateo Gabin:

Cuando se crea una corriente y el uso clasificadas no cambia la lista real. Por lo que podría hacer lo siguiente:

List<Item> sortedItemList =newItemList
.stream()
.sorted((object1, object2) -> object1.getCode().compareTo(object2.getCode()))
.collect(Collectors.toList());

o mejor tipo de la lista con el método de ordenación

newItemList
.sort((object1, object2) -> object1.getCode().compareTo(object2.getCode()));

Y se podría utilizar Comparator.comparing(Item::getCode)para reemplazar al comparador

newItemList
.sort(Comparator.comparing(Item::getCode));

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=196118&siteId=1
Recomendado
Clasificación