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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передать столбец матрицы 
:(
    Опции темы
Reptor
Дата 10.2.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

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



Есть 2 матрицы

Код

int[][] M1 = new int[3][5];
int[][] M2 = new int[5][4];


и мне надо в функцыю передать к примеру 2 строку и 2 столбец. Если строку можно так M1[2] то как быть со столбиком?
PM MAIL ICQ   Вверх
Kangaroo
Дата 10.2.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

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



Цитата(Reptor @  10.2.2008,  13:50 Найти цитируемый пост)
Если строку можно так M1[2] то как быть со столбиком? 

Только проходить в цикле и собирать значения в отдельный массив.


--------------------
Lost....
PM MAIL MSN   Вверх
ivg
Дата 10.2.2008, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Используем возможности ООП:
Код

public interface Column {
    public int getValue(int index);
}


Код

public class Matrix {

    private int[][] data;
    
    ...

    public class ColumnImpl implements Column {
        private int columnIndex;
        
        public ColumnImpl(int index) {
            this.columnIndex = index;
        }

        public int getValue(int index) {
            return data[index][this.columnIndex];
        }
    }
    ......

    public Column getColumn(int index) {
        return new ColumnImpl(index);
    }

}

Ну вобщем идея понятна? Там ещё проверки всякие нужны (выход за границу массива и т. п.)

Это сообщение отредактировал(а) ivg - 10.2.2008, 21:17
PM MAIL   Вверх
Hidrag
Дата 10.2.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ivg, класс! блин когда у меня по учебе встают похожие задачки, порой секундные по сложности, я даже на джаве тупо пишу в паскалевском стиле, хотя ведь можно написать так элегантно и поразить препода smile


--------------------
user posted image
PM WWW ICQ   Вверх
Reptor
Дата 11.2.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

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



ivg, что то я не совсем понял как это будет работать. Можете объяснить?

Добавлено через 1 минуту и 58 секунд
Я тоже в своей програме создал класс матрицы и объект у меня тоже содержит матрицу и ещё некоторые параметры вот а как быть с вложенным классом столбца я не совсем понял
PM MAIL ICQ   Вверх
ivg
Дата 11.2.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Цитата(Reptor @  11.2.2008,  13:37 Найти цитируемый пост)
Можете объяснить?

Что именно? Как работает вложенный класс?
Вобщем то основная идея здесь - семантически организовать доступ к элементам столбца матрицы, с минимумом накладных расходов на такую организацию.
Ну то есть данные там же и остаются, просто подстраиваем доступ к нужным из них наиболее простым способом.
Что же касается вложенного класса, то это совсем не обязательно его делать вложенным, просто такой способ проще, нагляднее и широко используется в системных классах.
Если непонятно то, как вложенный класс работает, то это можно объяснить так:
Объект вложенного класса, определёного без ключевого слова static, не может существовать без объекта внешнего класса. Что то типа связи один ко многим (на один объект внешнего класса много объектов вложенного класса). Благодаря этой связи, код из вложенного класса может иметь доступ к полям объекта внешнего класса:
return data[index][this.columnIndex];


Это сообщение отредактировал(а) ivg - 11.2.2008, 22:35
PM MAIL   Вверх
niasilil
Дата 11.2.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По моему, это явный overkill для кокретной задачи. Код стал плохо читаемым, сложно разобраться и совершенно не видно каких либо преимуществ для маленьких массивов. 

Для больших объемов данных, да, выгода большая и будет работать быстро. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
ivg
Дата 12.2.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Цитата(niasilil @  11.2.2008,  22:56 Найти цитируемый пост)
Код стал плохо читаемым,

Субъективно.
Цитата(niasilil @  11.2.2008,  22:56 Найти цитируемый пост)
сложно разобраться

Тоже.
Цитата(niasilil @  11.2.2008,  22:56 Найти цитируемый пост)
По моему, это явный overkill для кокретной задачи

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

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

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


 




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


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

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