第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對按保持排序的值排序的數(shù)組列表進行排序

對按保持排序的值排序的數(shù)組列表進行排序

30秒到達戰(zhàn)場 2023-06-08 19:54:52
我有一個對象的 ArrayList,在每個對象中我都有一個日期和一個小時,我已將其轉換為 int 以進行排序。我已經(jīng)按日期對對象列表進行了排序,現(xiàn)在我想按保持日期排序的小時對同一數(shù)組列表進行排序。這種情況的一個小例子:我有一個帶有方法 getDateEvent() 和 getHourEvent() 的事件對象,它返回一個可排序的數(shù)據(jù)和小時值,如 YYYYMMDD 和 HHMM事件的數(shù)組列表已經(jīng)按日期排序,所以我必須按小時排序數(shù)組列表,以保持日期排序。我的代碼實際上是這樣的:private ArrayList<Evento> SortingHour(ArrayList<Evento> SortingList){    int t=0;    int counter=0;    ArrayList<Evento> finale = new ArrayList<>();    ArrayList<Evento>[] Array =  new ArrayList[SortingList.size()];    while(counter<SortingList.size()){        if( SortingList.get(counter).getDateEvent()).equals(SortingList.get(counter+1).getDateEvent()))) {            Array[t].add(SortingList.get(counter));            Array[t].add(SortingList.get(counter+1));            counter++;        }else{            t++;        Array[t].add(SortingList.get(counter));}        counter++;        }            for(int c=0;c<t;c++) {                for (int c1 = 0; c1 < Array[c].size(); c1++) {                    for (int c2 = 0; c2 < Array[c].size(); c2++) {                        if (Integer.parseInt(Array[c].get(c1).getHourEvent()) < Integer.parseInt(Array[c].get(c2).getHourEvent())) {                            Collections.swap(Array[c], c1, c2);                        }                    }                }            }        for(int c=0; c<t;c++){            finale.addAll(Array[c]);        }    return finale;    }
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

嘗試這樣的事情:


public ArrayList<Item> sort(List<Item> list) {


    ArrayList<Item> dateSort= new ArrayList<>();

    ArrayList<Item> result = new ArrayList<>();


    if (list!= null && list.size() != 0) {


      dateSort= new ArrayList<>(list);


      Collections.sort(

          dateSort, (o1, o2) -> Integer.compare(o1.getIntDate(), o2.getIntDate()));


      int currentDate = dateSort.get(0).getIntDate();


      ArrayList<Item> temp= new ArrayList<>();


      for (int i = 1; i < dateSort.size(); i++) {


        if (dateSort.get(i).getIntDate() > currentDate ) {

          currentDate = dateSort.get(i).getIntDate();

          result.addAll(timeSort(temp));

          temp.clear();

          temp.add(dateSort.get(i));

        }

        else{

          temp.add(dateSort.get(i));

        }


      }

    }

    return result;

  }


private ArrayList<Item> timeSort(List<Item> list) {


  ArrayList<Item> timeSort= new ArrayList<>();

  if (list!= null && list.size() != 0) {


      timeSort= new ArrayList<>(list);


      Collections.sort(

          timeSort, (o1, o2) -> Integer.compare(o1.getIntTime(), o2.getIntTime()));


  }


  return timeSort;

}


查看完整回答
反對 回復 2023-06-08
?
牧羊人nacy

TA貢獻1862條經(jīng)驗 獲得超7個贊

我創(chuàng)建了以下示例,


public class Timings {


    private LocalDate date;

    private int hour;


    public Timings(LocalDate date, int hour) {

        this.date = date;

        this.hour = hour;

    }


    public LocalDate getDate() {

        return date;

    }


    public int getHour() {

        return hour;

    }


    @Override

    public String toString() {

        return "Timings{" +

                "date=" + date +

                ", hour=" + hour +

                '}';

    }

}

public class Sorting {


    public static void main(String[] args) {


        LocalDate date = LocalDate.of(2015, 02, 20);

        LocalDate date1 = LocalDate.of(2018, 07, 12);

        LocalDate date2 = LocalDate.of(2017, 05, 10);


        Timings timings = new Timings(date, 10);

        Timings timings1 = new Timings(date1, 8);

        Timings timings2 = new Timings(date2, 12);


        List<Timings> dateList = List.of(timings, timings1, timings2);


        List<Timings> newList = dateList.stream()

                .sorted( (a1, a2) -> a1.getDate().compareTo(a2.getDate()))

                .sorted(Comparator.comparingInt(Timings::getHour))

                .collect(Collectors.toList());


        System.out.printf(newList);


    }

}

在上面,第一種排序方法負責根據(jù)日期進行排序。第二個按小時照顧。


我得到以下輸出


[Timings{date=2018-07-12, hour=8}, Timings{date=2015-02-20, hour=10}, Timings{date=2017-05-10, hour=12}]



查看完整回答
反對 回復 2023-06-08
  • 2 回答
  • 0 關注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號