2016-03-03 3 views
2

Я пытаюсь выяснить, есть ли более простой способ сопоставления двух строковых массивов в Java. Я знаю в Python, это довольно легко в двух строках кода. Тем не менее, я не уверен, что Java обеспечивает более простой вариант, чем цикл через оба строковых массива.Сопоставление двух строковых массивов в Java

String [] words = {"cat","dog", "rat", "pet", "bat"}; 

String [] numbers = {"1","2", "3", "4", "5"}; 

Моя цель строка «1» из числа ассоциироваться со строкой «кошками» из слов, строка «2», связанной со строкой «собакой» и так далее.

Каждый массив строк будет иметь одинаковое количество элементов.

Если у меня есть случайная заданная строка «крыса», например, я хотел бы вернуть число 3, являющееся целым числом отображения из соответствующего массива строк.

Что-то вроде словаря или списка. Любые мысли были бы оценены.

+1

Возможный дубликат [Как отобразить два массива в один HashMap в Java?] (http://stackoverflow.com/questions/30339679/how-to-map-two-arrays-to-one-hashmap-in-java) – AMACB

ответ

0

Oracle Docs for HashMap

import java.util.HashMap; 
import java.util.Map; 

public class HashMapExample { 
    public static void main(String[] args) { 
     String[] words = {"cat","dog", "rat", "pet", "bat"}; 
     String[] numbers = {"1","2", "3", "4", "5"}; 

     Map<String,String> keyval = new HashMap<String,String>(); 

     for(int i = 0 ; i < words.length ; i++){ 
      keyval.put(words[i], numbers[i]); 
     } 

     String searchKey = "rat"; 

     if(keyval.containsKey(searchKey)){ 
      System.out.println(keyval.get(searchKey)); 
     } 
    } 

} 
4

Что вам нужно, это карта в java.

Пример использования карты:

Map<String,String> data = new HashMap<String,String>(); 
` for(int i=0;i<words.length;i++) { 
    data.put(words[i],numbers[i]); 
} 

Для получения более подробной информации, пожалуйста, обратитесь к https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

Смежные вопросы