PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mengatur ulang item dalam daftar sesuai dengan pola yang diberikan?

Saya pikir Anda harus mengurutkan ulang hasil kueri dalam kode:

public static void main(String[] args) {

    List<Integer> ids = Arrays.asList(5, 3, 2, 4, 1, 6);
    List<Foo> results = Arrays.asList(new Foo(1), new Foo(8), new Foo(2), new Foo(4), new Foo(5), new Foo(7));

    System.out.println("sortResults1: " + sortResults1(ids, results));
    System.out.println("sortResults2: " + sortResults2(ids, results));
}

private static List<Foo> sortResults1(List<Integer> ids, List<Foo> results) {
    Foo[] sortedResultsArray = new Foo[ids.size()];
    for (Foo result : results) {
        // look up the required position of this result's id 
        int pos = ids.indexOf(result.getId());
        if (pos >= 0) {
            sortedResultsArray[pos] = result;
        }
    }
    List<Foo> sortedResults = new ArrayList<>(Arrays.asList(sortedResultsArray));
    sortedResults.removeAll(Collections.singleton(null));
    return sortedResults;
}

private static List<Foo> sortResults2(List<Integer> ids, List<Foo> results) {
    Collections.sort(results, Comparator.comparingInt(item -> ids.indexOf(item.getId())));
    return results;
}

Solusi pertama menghilangkan hasil apa pun dengan ID yang tidak muncul dalam daftar id.

Solusi kedua dengan komparator menempatkan hasil apa pun dengan ID yang tidak dikenal di bagian depan daftar hasil.

Keluaran:

Catatan:Menemukan pertanyaan serupa di sini:Urutkan ( Array)Daftar dengan urutan tertentu Ini memiliki jawaban yang masuk akal dengan TreeMap.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat tabel Postgresql dari Skema Avro di Nifi

  2. Bagaimana cara mengkonfigurasi Caching PreparedStatement dengan Postgres dan Tomcat7 JDBC Pool?

  3. SpringBoot+Kotlin+Postgres dan JSONB:org.hibernate.MappingException:Tidak ada pemetaan Dialek untuk tipe JDBC

  4. Bagaimana cara menambahkan 2 poin dengan jarak di antara mereka (SRID =32636)?

  5. Apakah ISO8601 format tanggal terbaik untuk PostgreSQL jsonb ketika saya ingin memfilter menurut tanggal?