Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двумерные массивы... помогите заполнить 
V
    Опции темы
Felixx
  Дата 22.9.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



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

Парсится файл, от туда берется 3 значения из одной строки...

Нужно записать эти 3 значения в массив, n-ное количество раз (В зависимости от количества строк в файле)
Тоесть тут нужен двумерный массив, чтобы i содержало эти 3 значения, а в j хранились другие 3 значения...

Заранее большое Спасибо.

Добавлено через 5 минут и 33 секунды
Например, после определения переменных вызывается метод...

setVars(item, count, count2);

потом сам метод...

Код

private void setVars(int item, int count, int count2)
{
    //Тут нужно заполнить массив и вывести на экран его содержимое....
}

PM MAIL   Вверх
aleksandy
Дата 22.9.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 4
Всего: 5



Цитата(Felixx @ 22.9.2009,  13:38)
Нужно записать эти 3 значения в массив, n-ное количество раз (В зависимости от количества строк в файле)
Тоесть тут нужен двумерный массив, чтобы i содержало эти 3 значения, а в j хранились другие 3 значения...

Еще раз перечитай то, что ты написал это полный бред... Переформулируй задачу или покажи, как должны выглядеть входные данные, и что должно в итоге получиться.
PM   Вверх
Felixx
Дата 22.9.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Код

                        for(Node start = node.getFirstChild(); start != null; start = start.getNextSibling())
            {
                if("ROW".equalsIgnoreCase(start.getNodeName()))
                {
                    NamedNodeMap NNM = start.getAttributes();

                    var1 =  Integer.parseInt(NNM.getNamedItem("var1").getNodeValue());
                    item = Integer.parseInt("item").getNodeValue();
                    count = Integer.parseInt(NNM.getNamedItem("count").getNodeValue());
                    count2 = Integer.parseInt(NNM.getNamedItem("count2").getNodeValue());

                    switch(var1)
                    {
                        case 1:
                            setVars(item,countl,count2);
                            break;
                        case 2:
                            setVars2(item,countl,count2);
                            break;
                       case 3:
                            setVars3(item,countl,count2);
                            break;
                                        // И так далее...
                    }
                }
            }

     private void setVars(int item, int count, int count2)
     {
             //Тут нужно заполнить массив
     }
      private void setVars2(int item, int count, int count2)
     {
             //Тут нужно заполнить массив
     }


Это сообщение отредактировал(а) Felixx - 22.9.2009, 14:13
PM MAIL   Вверх
Galaran
Дата 22.9.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 25.5.2009

Репутация: 1
Всего: 2



Я так понял, есть разные типы записей. Тип определяется интовым кодом. Для каждого типа может быть список из 3х элементных массивов?

Если так, то не проще ли сделать не 2мерный массив, а список одномерных массивов. Заранее же неизвестно сколько таких троек будет. И эти списки засунуть в HashMap, где каждый список таких троек будет ассоциироваться с ключем - в твоём случае это var1. Тогда функция добавления будет только одна.

Примерно так:

Код

public class HashOfList {

      private static Map<Integer, List<Integer[]>> nodes = new HashMap<Integer, List<Integer[]>>();

      public static void main(String[] args) {
            hashInit(); // инициализируем каждый список в хэшмэпе

            // добавляем
            add(1, 34, 54, 76);
            add(2, 4, 2, 7);
            add(1, 342, 5433, 755);

            print();
      }

      // тут нам надо создать тройку и засунуть её в хэш по ключу type
      static void add(int type, int param, int param2, int param3) {
            Integer[] arr = new Integer[3];
            arr[0] = param;
            arr[1] = param2;
            arr[2] = param3;
            nodes.get(type).add(arr);
      }

      private static void print() {
            List<Integer[]> curList = null;
            for (int curArrList : nodes.keySet()) { // проход по элементам хэшмэп
                  curList = nodes.get(curArrList); // текущий список
                  if (!curList.isEmpty()) { // пустые списки печатать не будем
                        System.out.println("Type: " + curArrList + "\n-------------"); // заголовок
                        for (Integer[] curArr : curList) { // проходимся по списку массивов
                              // печатаем массив
                              System.out.println(curArr[0].intValue() + " " +
                                                 curArr[1].intValue() + " " +
                                                 curArr[2].intValue());
                        }
                        System.out.println(); // меняем строку
                  }
            }
      }

      private static void hashInit() {
            for (int i = 1; i <= 9; i++) { // допустим коды типов могут быть 1 - 9
                  List<Integer[]> curList = new ArrayList<Integer[]>();
                  nodes.put(i, curList);
            }
      }
}


и вот что выйдет

Код

Type: 1
-------------
34 54 76
342 5433 755

Type: 2
-------------
4 2 7

PM MAIL   Вверх
Felixx
Дата 22.9.2009, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Спасибо, но я уже по другому сделал, половину пришлось руками поправлять правда, зато сделал smile
К тому же я не совсем понел как это можно применить к моему заданию smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.