Có sự khác biệt giữa một sắp xếp và ra lệnh cho bộ sưu tập?
Có sự khác biệt giữa một sắp xếp và ra lệnh cho bộ sưu tập?
Câu trả lời:
Một bộ sưu tập có nghĩa là các yếu tố của bộ sưu tập có một thứ tự cụ thể. Thứ tự độc lập với giá trị. Một Danh sách là một ví dụ.
Một bộ sưu tập được sắp xếp có nghĩa là không chỉ bộ sưu tập có thứ tự, mà thứ tự phụ thuộc vào giá trị của phần tử. Một Sắp xếp là một ví dụ.
Ngược lại, một bộ sưu tập không có bất kỳ thứ tự nào có thể duy trì các yếu tố theo bất kỳ thứ tự nào. Một tập hợp là một ví dụ.
Java sử dụng "bộ sưu tập theo thứ tự" để có nghĩa là một bộ sưu tập, chẳng hạn như Danh sách, trong đó (không giống như Hashset), bộ sưu tập ghi nhớ thứ tự các phần tử được cho là theo thứ tự nào. Vì vậy, các phần tử có thể được thêm vào bộ sưu tập tại một "địa điểm" cụ thể theo thứ tự .
Java sử dụng "bộ sưu tập được sắp xếp" để có nghĩa là một bộ sưu tập, chẳng hạn như Sortedset, trong đó (không giống như Danh sách), thứ tự mà trình vòng lặp đi qua bộ sưu tập theo Bộ so sánh được chỉ định hoặc thứ tự tự nhiên của các phần tử.
Vì vậy, sự khác biệt là việc đặt hàng phụ thuộc vào các giá trị ("được sắp xếp") hay là một thuộc tính mà các thành phần có độc lập với giá trị của chúng ("được đặt hàng").
OrderedDict
trong python. Nhưng trong .NET, giao diện cho liệt kê "đã sắp xếp" được gọi IOrderedEnumerable
. Vì vậy, nó phụ thuộc. Chỉ cần nói ..
Vâng, mặc dù các khái niệm là tương tự nhau.
List
là một bộ sưu tập có thứ tự: mỗi phần tử có một chỉ mục, tạo thành một thứ tự của các phần tử, nhưng thường không liên quan đến bất kỳ thuộc tính nào của chính các phần tử.
SortedMap
và SortedSet
được sắp xếp các bộ sưu tập, có nghĩa là việc lặp qua bộ sưu tập sẽ xảy ra theo một chuỗi xuất phát từ chính các phần tử. Ví dụ: nếu bạn có SortedSet<String>
thì các Chuỗi sẽ được sắp xếp theo thứ tự sắp xếp từ vựng.
Bộ sưu tập theo thứ tự có thể được sắp xếp nhưng không nhất thiết phải (ví dụ sau khi sử dụng Collections.sort()
) khi thứ tự bên ngoài trùng với thứ tự sắp xếp của các thành phần. Một bộ sưu tập được sắp xếp luôn được sắp xếp theo thứ tự ngầm (nghĩa là luôn có phần tử "đầu tiên" và nó luôn giống như miễn là bạn không thêm phần tử khác, phần tử nhỏ hơn).
Một bộ sưu tập theo thứ tự là một bộ sưu tập theo dõi một chỉ mục liên tiếp mà mọi phần tử được chèn vào.
Bộ sưu tập được sắp xếp là một bộ sưu tập có thứ tự khi thứ tự bổ sung phụ thuộc vào giá trị của phần tử được chèn vào, trong suốt quá trình sử dụng giao diện So sánh cung cấp cho bạn một phương thức để xác định tiêu chí sắp xếp.
Tôi hy vọng nó có thể giúp đỡ.
Sắp xếp sẽ ngụ ý sắp xếp theo một triển khai so sánh hoặc so sánh. Ordered sẽ ngụ ý rằng nó tuân theo thứ tự chèn hoặc một số định nghĩa khác về thứ tự phù hợp và được xác định, nhưng nếu không thì tùy ý.
Vì vậy, một danh sách các chuỗi được sắp xếp sẽ được sắp xếp theo phương thức String.compareTo. Một danh sách có thể chứa một danh sách các chuỗi được chèn theo thứ tự tùy ý, nhưng thứ tự đó sẽ luôn giữ nguyên.
Tất nhiên, có các phương thức trên lớp Bộ sưu tập để sắp xếp danh sách.
Một bộ sưu tập được sắp xếp thường có nghĩa là các phần tử được sắp xếp từ giá trị minimun đến giá trị maxinum hoặc ngược lại tùy thuộc vào (các) thuộc tính của các phần tử mà thuật toán hoạt động.
đối với một bộ sưu tập interger, số được sắp xếp có thể từ số tối thiểu đến số tối đa cho bộ sưu tập người, nó có thể được tính theo chiều cao của người hoặc cân nặng của người, v.v.
Khi nói về thứ tự, nó thường có nghĩa là thứ tự chèn. Thứ tự có thể được thay đổi sau khi sắp xếp
Bộ sưu tập được sắp xếp so với Bộ sưu tập được đặt hàng
1. Bộ sưu tập sắp xếp
Một bộ sưu tập được sắp xếp đang sắp xếp một bộ sưu tập bằng cách sử dụng các tính năng sắp xếp được cung cấp bởi khung bộ sưu tập Java. Việc sắp xếp xảy ra trong bộ nhớ của JVM chạy Hibernate, sau khi dữ liệu được đọc từ cơ sở dữ liệu bằng cách sử dụng bộ so sánh java.
Nếu bộ sưu tập của bạn không lớn, nó sẽ là cách hiệu quả hơn để sắp xếp nó. Khi nó xảy ra trong bộ nhớ jvm, nó có thể loại bỏ lỗi Bộ nhớ.
2. Bộ sưu tập đơn hàng
Bộ sưu tập đơn hàng đang sắp xếp một bộ sưu tập bằng cách chỉ định mệnh đề theo thứ tự trong truy vấn để sắp xếp bộ sưu tập này khi truy xuất. Nếu bộ sưu tập của bạn rất lớn, nó sẽ là cách hiệu quả hơn để sắp xếp nó. Nó là nhanh so với bộ sưu tập được sắp xếp.
IOrderedEnumerable
(điều buồn cười là nó không nhất quán trong .NET. Từ điển tôn trọng "thứ tự chèn" trong .NET được gọiOrderedDictionary
mà một số người tin là một cách gọi sai so với nói,IndexedDictionary
) . Vâng trong thế giới java (hầu hết ở nơi khác cũng vậy) họ có nghĩa là những gì bạn đã có trong câu trả lời. Để biết thêm xem tại đây .