2013-07-11 2 views
0

Возможно ли иметь массив, содержащий имена или ссылки на другие массивы?Array как ссылка на другие массивы

например.

String[] fruits={"orange","apple"}; 
String[] colors={"red","blue","green"}; 

И третий массив String[] array1={"fruits","colors"};

Я на самом деле есть много массивов и на основе массива передается мне нужно, чтобы сравнить его с массивом уже присутствует.

Как если бы я передал массив fruit, сравните массив array1 [0] -го массива i.e с массивным массивом?

Я могу сравнить пройденный массив с отдельными массивами и выполнить сравнение для каждого, но есть ли более короткий путь?

+0

Похоже, ваши ищут 'Map '. – jlordo

+0

Это будет 'String [] [] arrayOfArrays = {фрукты, цвета};' но, как сказал @jlordo, карта, вероятно, будет лучше подходит. – assylias

ответ

2

Как предложил в мой комментарий ниже вопрос, вы можете использовать карту:

String[] fruits = {"orange", "apple"}; 
    String[] colors = {"red", "blue", "green"}; 

    Map<String, String[]> map = new HashMap<>(); 
    map.put("fruits", fruits); 
    map.put("colors", colors); 

    String[] toCompare = map.get("fruits"); // will return the fruits array 
+0

Хорошо .. Позвольте мне попробовать! – Tanna

+0

Спасибо jlordo! Просто то, что мне нужно :) Спасибо u every1 за быстрый ответ :) – Tanna

2

Вы можете иметь массив массивов:

String[][] myArr = {fruits, colors}; 

Но @jlordo предположил, что это лучший подход, чтобы иметь Map, содержащий String ключ, который будет представлять имя массива, а также фактический массив как значение .

-1

Вы можете иметь массив со ссылками на почти что-нибудь, используя Object класс (вы не ограничены массивами String):

Object [] myArr = {fruits, colors}; 
+1

Это, вероятно, не очень полезно, вам придется бросать вещи повсюду. – millimoose

+0

Согласитесь, но в вопросе массив строк является только примером. Насколько я понимаю, массив строк не является обязательным требованием. – gawi

0

Поскольку двойной массив уже представлен, а также пример карты, можно увидеть пример с arraylist.

String[] fruits = {"orange", "apple"}; 
    String[] colors = {"red", "blue", "green"}; 

    ArrayList<String[]> fruitsAndColors = new ArrayList<String[]>(); 
    fruitsAndColors.add(fruits); 
    fruitsAndColors.add(colors); 

Вы можете читать Java API для других методов вставки: http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

+0

Yup! даже это правильно. Но мне нужна пара ключевых значений, которая возможна только в том случае, если я использую карту. Но мой вопрос был неоднозначным. Поэтому я тоже принимаю ваш ответ :) – Tanna

+0

@ Танна: вы можете принять только один ответ - поэтому вы не ответили моим ответом;) – jlordo

+0

Я видел это .. Принял ваш :) – Tanna

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