Mam ArrayList of HashMap. Chcę wyszukać w nim HashMap, ale nie mogę znaleźć sposobu, aby to osiągnąć. Proszę zasugerować mi, jak można to zrobić? Dzięki.Wyszukaj HashMap w ArrayList of HashMap
Odpowiedz
odpowiedź na twoje pytanie tak, jak to zrozumiałem!
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();
}
}
Twoja Hashmap może używać innych typów, ta używa Ciągów.
Nie ma sensu powtarzać całej listy, aby znaleźć klucz na środku listy. –
Zobacz, czy to pomaga:
@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
}
Jeśli szukasz, aby uzyskać odniesienie do mapy zamiast obiektu (z jakiegokolwiek powodu) stosuje ten sam proces, z wyjątkiem po prostu przechowywać odniesienie do mapy:
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
}
Efektywny sposób, którego użyłem do przeszukania mapy mieszającej na liście bez użycia pętli. Ponieważ pętla sprawia, że czas wykonania jest dłuższy,
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");
}
Spróbuj poniżej ulepszonego kodu do wyszukiwania klucza na liście 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;
}
Przekaż klucze jako argument, który należy przeszukać. –
jeśli masz ArrayList jak ten: ArrayList < < HashMap String, String > > i chcesz porównać jedną z wartości wewnątrz HashMap spróbuj tego kodu.
Używam go do porównywania ustawień powiadomień o alarmach.
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. Konwertowanie HashMap na ArrayList
- 2. ArrayList jako klucz w Hashmap
- 3. HashMap w HashMap
- 4. Java StackOverflowError po wprowadzeniu ArrayList do HashMap
- 5. LinkedHashMap vs HashMap! = LinkedList vs ArrayList
- 6. Persist HashMap w ORMLite
- 7. Zapisywanie ArrayList of Hash map
- 8. Wdrażanie HashMap
- 9. HashMap <String, Integer> Wyszukaj część klucza?
- 10. Złożoność czasowa metod HashMap
- 11. Android HashMap w pakiecie?
- 12. Hashmap wektorów w Matlab
- 13. Przechowuj tablicę w HashMap
- 14. ArrayList <HashMap <String, String >> do String []
- 15. Get ArrayList <HashMap <String, String >> ceni
- 16. Jak podzielić HashMap w Javie
- 17. Jak sprawdzić czy wartość w HashMap istnieć
- 18. JAXB HashMap unmappable
- 19. Sprawdź, czy obiekt jest instancją String, HashMap lub HashMap []
- 20. HashMap wykorzystuje LinkedList wewnętrznie
- 21. HashMap Java 8 realizacja
- 22. Metoda zwracana przez HashMap
- 23. współbieżna HashMap: sprawdzanie rozmiaru
- 24. Jak utworzyć literał HashMap?
- 25. Swagger HashMap typ właściwości
- 26. Jak sortować klucze HashMap
- 27. HashMap uzyskać zwraca null
- 28. Java HashMap zduplikowane elementy
- 29. Zdobądź klucze HashMap Java
- 30. Klasa Object vs HashMap
Powtórzyć wszystkie 'HashMap's w' ArrayList' i sprawdzić jeden po drugim dla klucza? –
Czy chcesz przeszukać pojedynczą mapę na liście map? Jak rozpoznałbyś tę pojedynczą mapę, którą musisz przeszukać? – eran
Zapisać go w bazie danych i przeszukać za pomocą SQL? Zindeksuj go za pomocą Lucene i wyszukaj pełny tekst? Przekształcić się w indeksowane odwrotnie czerwono-czarne drzewo? Na podstawie tego, co powiedziałeś, kto wie ... –