PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để sắp xếp lại các mục trong danh sách cho phù hợp với một mẫu nhất định?

Tôi nghĩ bạn phải sắp xếp lại kết quả của truy vấn trong mã:

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

Giải pháp đầu tiên bỏ qua bất kỳ kết quả nào có ID không xuất hiện trong danh sách id.

Giải pháp thứ hai với trình so sánh đặt bất kỳ kết quả nào có ID không xác định ở đầu danh sách kết quả.

Đầu ra:

Lưu ý:Đã tìm thấy một câu hỏi tương tự ở đây: Sắp xếp một ( Mảng) Danh sách với một thứ tự cụ thể Nó có một câu trả lời hợp lý với Sơ đồ cây.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Không có quyền tạo người dùng

  2. Cách so sánh hai lược đồ trong PostgreSQL

  3. Cập nhật dấu thời gian khi hàng được cập nhật trong PostgreSQL

  4. Làm thế nào để làm cho một tiện ích mở rộng không thể di dời?

  5. Lưu văn bản đã định dạng vào cơ sở dữ liệu và truy xuất nó trở lại 'nguyên trạng' giống như một chuỗi được định dạng