有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在Android中使用集合对ArrayList数据进行排序

我一直在整理Arraylist数据。我使用相同的键在单个ArrayList中传递不同的ArrayList数据。我也在列表视图中显示,但现在我坚持显示升序和降序数据

这是我的垃圾桶课

public class BothListClass implements Serializable {

   public List<LstItinerary> itineraryOneWay = new ArrayList<>();

   public List<LstItinerary> itineraryReturn = new ArrayList<>();

   public List<LstItinerary> getItineraryOneWay() {
       return itineraryOneWay;
   }

   public void setItineraryOneWay(List<LstItinerary> itineraryOneWay) {
       this.itineraryOneWay = itineraryOneWay;
   }

   public List<LstItinerary> getItineraryReturn() {
       return itineraryReturn;
   }

   public void setItineraryReturn(List<LstItinerary> itineraryReturn) {
       this.itineraryReturn = itineraryReturn;
   }
}

这是我的课程,示例键

 public class LstItinerary implements Serializable {
     @SerializedName("ArrivalDateTime")
     @Expose
     private String arrivalDateTime;          
     @SerializedName("DepartureDateTime")
     @Expose
     private String departureDateTime;    
     @SerializedName("CustomerFare")
     @Expose
     private Float customerFare;   }

这是我的集合排序方法,它位于适配器类中。 在这个方法中,我被困在如何排序,整个数组列表中

 public void sort_ascendingPrice() {
    Collections.sort(arrayList_bothClass, new Comparator<BothListClass>() {
        @Override
        public int compare(BothListClass o1, BothListClass o2) {
            Float depart1 = 0f, arrive1 = 0f, total1 = 0f, depart2 = 0f, arrive2 = 0f, total2 = 0f;

            try {
                depart1 = o1.itineraryOneWay.get(0).getCustomerFare();
                arrive1 = o1.itineraryReturn.get(0).getCustomerFare();
                
                total1 = depart1 + arrive1;

                depart2 = o2.itineraryOneWay.get(0).getCustomerFare();
                arrive2 = o2.itineraryReturn.get(0).getCustomerFare();

                total2 = depart2 + arrive2;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return total1.compareTo(total2);
        }
    });
    notifyDataSetChanged();
}

共 (0) 个答案