Tôi có một ArrayList của HashMap. Tôi muốn tìm kiếm một HashMap trong nó nhưng không thể tìm thấy một cách để đạt được điều này. Xin cho tôi biết làm thế nào nó có thể được thực hiện? Cảm ơn.Tìm kiếm một HashMap trong một ArrayList của HashMap
Trả lời
trả lời để câu hỏi của bạn theo cách tôi hiểu nó!
for (HashMap<String, String> hashMap : yourArrayList)
{
// For each hashmap, iterate over it
for (Map.Entry<String, String> entry : hashMap.entrySet())
{
// Do something with your entrySet, for example get the key.
String sListName = entry.getKey();
}
}
Hashmap của bạn có thể sử dụng các loại khác, loại này sử dụng Strings.
Không có nghĩa là lặp lại toàn bộ danh sách bạn tìm thấy chìa khóa ở giữa danh sách. –
Xem nếu điều này giúp:
@Test
public void searchMap() {
List<Map<String, String>> listOfMaps = new ArrayList<Map<String,String>>();
Map<String, String> map1 = new HashMap<String, String>();
map1.put("key1", "value1");
Map<String, String> map2 = new HashMap<String, String>();
map1.put("key2", "value2");
Map<String, String> map3 = new HashMap<String, String>();
map1.put("key3", "value3");
listOfMaps.add(map1);
listOfMaps.add(map2);
listOfMaps.add(map3);
String keyToSearch = "key2";
for (Map<String, String> map : listOfMaps) {
for (String key : map.keySet()) {
if (keyToSearch.equals(key)) {
System.out.println("Found : " + key + "/value : " + map.get(key));
}
}
}
}
Cheers!
Object myObj;
Object myKey;
//Traverse the list
for(HashMap curMap : listOfMaps){
//If this map has the object, that is the key doesn't return a null object
if((myObj = curMap.get(myKey)) != null) {
//Stop traversing because we are done
break;
}
}
//Act on the object
if(myObj != null) {
//TODO: Do your logic here
}
Nếu bạn đang tìm kiếm để có được những tài liệu tham khảo để bản đồ thay vì đối tượng (đối với bất cứ lý do) cùng một quá trình áp dụng, trừ trường hợp bạn chỉ cần lưu trữ các tài liệu tham khảo vào bản đồ:
Map myMap;
Object myKey;
//Traverse the list
for(HashMap curMap : listOfMaps){
//If this map has the object, that is the key doesn't return a null object
if(curMap.get(myKey) != null) {
//Store instance to the map
myMap = curMap;
//Stop traversing because we are done
break;
}
}
//Act on the map
if(myMap != null) {
//TODO: Do your logic here
}
Cách hiệu quả mà tôi đã sử dụng để tìm kiếm một hashmap trong danh sách mảng mà không sử dụng vòng lặp. Vì vòng lặp thực hiện thời gian thực hiện dài hơn
try{
int index = list.indexOf(map); // map is your map to find in ArrayList
if(index>=0){
HashMap<String, String> map = array_list.get(index);
// Here you can get your values
}
}
catch(Exception e){
e.printStackTrace();
Log.i("HashMap","Not Found");
}
Hãy thử bên dưới mã được cải thiện để tìm kiếm khóa trong danh sách HashMap.
public static boolean searchInMap(String keyToSearch)
{
boolean returnVal = false;
List<Map<String, String>> listOfMaps = new ArrayList<Map<String, String>>();
Map<String, String> map1 = new HashMap<String, String>();
map1.put("key1", "value1");
Map<String, String> map2 = new HashMap<String, String>();
map1.put("key2", "value2");
Map<String, String> map3 = new HashMap<String, String>();
map1.put("key3", "value3");
listOfMaps.add(map1);
listOfMaps.add(map2);
listOfMaps.add(map3);
for (Map<String, String> map : listOfMaps)
{
if(map.containsKey(keyToSearch))
{
returnVal =true;
break;
}
}
return returnVal;
}
Truyền các khóa làm đối số cần tìm kiếm. –
nếu bạn có một ArrayList như thế này: ArrayList < HashMap < String, String > > và bạn muốn so sánh một trong những giá trị bên trong HashMap thử mã này.
Tôi sử dụng nó để so sánh các cài đặt của thông báo cảnh báo của tôi.
for (HashMap<String, String> map : AlarmList) {
for (String key : map.keySet())
{
if (key.equals("SendungsID"))
{
if(map.get(key).equals(alarmMap.get("AlarmID")))
{
//found this value in ArrayList
}
}
}
}
- 1. Tìm kiếm một phần trong HashMap
- 2. HashMap trong vòng một HashMap
- 3. Cách tốt nhất để tạo một hashmap của arraylist
- 4. Sử dụng ArrayList hoặc HashMap
- 5. Chuyển đổi HashMap thành ArrayList
- 6. Chuyển đổi ArrayList để HashMap
- 7. Cách sắp xếp một HashMap trong Java
- 8. Java ArrayList và HashMap on-the-fly
- 9. Gán Hashmap thành Hashmap
- 10. Persist HashMap trong ORMLite
- 11. Tìm kiếm giá trị cho một khóa đã cho trong HashMap
- 12. HashMap
- 13. Lưu trữ một mảng trong HashMap
- 14. Lấy tất cả các giá trị từ các khóa HashMap trong một ArrayList Java
- 15. ArrayList <HashMap <String, String >> để String []
- 16. Java StackOverflowError sau khi đặt ArrayList vào HashMap
- 17. Bản đồ/ArrayList: cái nào nhanh hơn để tìm kiếm một phần tử
- 18. trong Clojure, là một vector một hashmap cụ thể?
- 19. Giữ một cặp nguyên thủy trong một Java HashMap
- 20. Android HashMap trong Gói?
- 21. HashMap Serializability
- 22. HashMap profiling
- 23. Kiểm tra sự tồn tại của một HashMap chính
- 24. Phát triển Hashmap của vectơ trong Matlab
- 25. Lưu trữ một HashMap bên HashMap khác và cải thiện hiệu suất
- 26. JAXB HashMap unmappable
- 27. Thêm vào hashmap mất một thời gian dài
- 28. Chuỗi là khóa trong hashmap
- 29. gọi containsKey trên một hashmap với lớp tùy chỉnh
- 30. Cách sử dụng một Hashmap java làm biến trong JasperReport
Lặp lại tất cả 'HashMap' trong danh sách 'ArrayList' và đánh dấu cái khác cho khóa? –
Bạn có muốn tìm kiếm một bản đồ trong danh sách bản đồ không? Làm thế nào bạn sẽ nhận ra rằng bản đồ duy nhất bạn phải tìm kiếm? – eran
Lưu nó vào cơ sở dữ liệu và tìm kiếm nó bằng SQL? Lập chỉ mục với Lucene và tìm kiếm toàn văn? Chuyển đổi thành cây đỏ-đen được lập chỉ mục ngược lại? Dựa trên những gì bạn nói, ai biết ... –