thắc mắc [Java] Mn giải đáp giúp em về hashSet này với ạ

t.nhxyzwr

Junior Member
Set<Integer> items = new HashSet<>();
items.add(2);
items.add(8);
items.add(22);
items.add(11);
items.remove(2);
for (Integer i : items) {
System.out.println(i + " ");
}

Mọi người cho em hỏi là tại sao khi em in ra thì kết quả lại là 22 8 11 ạ. Còn khi em thay đổi 22 thành 15 thì in ra theo thứ tự tăng dần 8 11 15 vậy ạ. Em cám ơn ạ
 
Hashset không đảm bảo thứ tự, do cơ chế của hash technique. Muốn đảm bảo thì dùng linkhashset.

Sent from Google Pixel 2 XL using vozFApp
 
Set<Integer> items = new HashSet<>();
items.add(2);
items.add(8);
items.add(22);
items.add(11);
items.remove(2);
for (Integer i : items) {
System.out.println(i + " ");
}

Mọi người cho em hỏi là tại sao khi em in ra thì kết quả lại là 22 8 11 ạ. Còn khi em thay đổi 22 thành 15 thì in ra theo thứ tự tăng dần 8 11 15 vậy ạ. Em cám ơn ạ
HashSet ko sắp xếp nha phen.
nếu muốn sắp xếp thì dùng treeset
 
Bạn này không thuộc kiến thức cơ bản. Câu trả lời là đáp án của câu hỏi phỏng vấn rất phổ biến là phân biệt List, Set, Map
 
Back
Top