31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
|
1 | |
Возврат нескольких значений из метода не знаем сколько таких значений29.08.2013, 01:34. Показов 5677. Ответов 14
Метки нет (Все метки)
Здравствуйте! Собственно вопрос: как возвращать <несколько> значений из метода если заранее неизвестно <сколько> их будет, ну известно разве что не больше некого числа? При этом может случиться, что вообще ничего не нужно возвращать(<несколько> == 0)
Ну например, есть двумерный массив, и нужно вернуть из метода номера всех тех строчек, в которых бла бла бла.. Но в принципе, в массиве может не оказаться ни одной такой строчки(и что делать в этом случае?) Сам думал возвращать сначала массив, но не особо он годиться(будет не до конца заполнен) или мб какой-то ArrayList но тоже не знаю как описать случай, когда он будет пустой.
0
|
29.08.2013, 01:34 | |
Ответы с готовыми решениями:
14
Возврат нескольких значений из метода Возврат двух значений из метода Возврат из функции нескольких значений Возврат нескольких значений в функции |
273 / 241 / 56
Регистрация: 29.05.2012
Сообщений: 889
|
|
29.08.2013, 01:55 | 2 |
Методом isEmpty из класса ArrayList узнаём пустой он или нет.
1
|
38 / 38 / 10
Регистрация: 04.02.2013
Сообщений: 106
|
||||||
29.08.2013, 02:45 | 3 | |||||
Используйте ArrayList. Просто потом проверьте что он не null и все (в примере если введен "0", то считается как будто данные не введены - просто для наглядности):
1
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
29.08.2013, 09:56 | 4 |
Плохая идея. использования null как возвращаемого значения стоит избегать где только возможно. А уж в ArrayList сам Бог велел возвращать пустую коллекцию.
1
|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
|
29.08.2013, 12:32 [ТС] | 5 |
да, лучше проверять на isEmpty чем на null
0
|
38 / 38 / 10
Регистрация: 04.02.2013
Сообщений: 106
|
|
29.08.2013, 13:13 | 6 |
0
|
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
|
|
29.08.2013, 14:15 [ТС] | 7 |
нет, не все равно
0
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
||||||
29.08.2013, 14:24 | 8 | |||||
1
|
38 / 38 / 10
Регистрация: 04.02.2013
Сообщений: 106
|
|
29.08.2013, 15:16 | 9 |
В задаче предполагается что метод вернет список. И поэтому чтобы не схватить нуллпоинтер достаточно проверить что возвращаемый список не null. Поэтому я и спрашиваю - в чем разница? Ведь на создание пусть даже пустого списка какая-то часть памяти тратится.
0
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
29.08.2013, 15:21 | 10 |
Сообщение было отмечено как решение
Решение
Разница в том, что когда Вы этот список передадите через 10 вызовов - Вы гарантированно где-то забудете проверить. Или забудет тот, кто пишет метод, который Вы вызываете. Просто поверьте опыту старых java-разработчиков - если есть возможность не передавать null, лучше ею воспользоваться. Это вызовет существенно меньше проблем в конечном итоге.
А про память Вы будете думать тогда, когда ее реально станет не хватать. И, опять-таки поверьте, профилировка покажет 100500 причин расхода ДО Вашего "лишнего" списка.
3
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|
29.08.2013, 15:59 | 11 |
представьте, что list и list2 вернулись из метода и попадают под for-each. Согласитесь, if (list2 != null) это по меньшей мере утомляет, засоряет код и отсутствие приводит к "самому страшному" кошмару в виде NullPointerException
0
|
Модератор
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
29.08.2013, 16:57 | 12 | |||||
0
|
tankomaz
|
||||||||||
29.08.2013, 17:23
#13
|
||||||||||
Не по теме: easybudda, вопрос оффтопный (по код конвеншену), но вы пишите
0
|
easybudda
|
29.08.2013, 17:27
#14
|
Не по теме: tankomaz, сугубо моя привычка, мне так нагляднее кажется.
1
|
31.08.2013, 10:36 | 15 | |||||
Если поставить тип возвращаемого значения у метода - List<Integer>, то можно будет не создавать каждый раз пустой список, а использовать Collections.emptyList
2
|
31.08.2013, 10:36 | |
31.08.2013, 10:36 | |
Помогаю со студенческими работами здесь
15
Возврат нескольких значений из функции Возврат нескольких значений из функции Передача параметров и возврат значений из асинхронного метода Возврат из хранимой процедуры нескольких значений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |