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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог функции in_array() в JAVA!? 
V
    Опции темы
freshAngel
  Дата 1.12.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет есть условие типа:
Код

if (Hash.get(i).get(4).equals("cool") && Hash.get(i).get(5).equals("a1")){
}


Мне нужно проверить, что Hash.get(i).get(5) может быть равен либо "a1" либо "a2".
Конечно это легко можно сделать так:
Код

if (Hash.get(i).get(4).equals("cool") && Hash.get(i).get(5).equals("a1") || Hash.get(i).get(5).equals("a2")){
}


Но желательно уместить все это покороче.
Может в JAVA есть функция типа, если значение совпадает со значениями в массиве, то делать то - то...
Аналог функции in_array в PHP или IN в MySQL.
 smile 

И еще вопрос.
Например, в MySQL есть REGEXP или LIKE для поиска по части текста, а что JAVA может предложить!?
 smile 


Простите, не в тот топик...

Это сообщение отредактировал(а) freshAngel - 1.12.2009, 21:52
PM MAIL   Вверх
goodday1941
Дата 2.12.2009, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

List l = new ArrayList();
Integer a = 1;
l.add(a);
if(l.contains(a)){
//do something
}

это?

Это сообщение отредактировал(а) goodday1941 - 2.12.2009, 11:13


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
freshAngel
  Дата 2.12.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(goodday1941 @ 2.12.2009,  11:13)
Код

List l = new ArrayList();
Integer a = 1;
l.add(a);
if(l.contains(a)){
//do something
}

это?

Нет.
Мне нужно проверить значение из ArrayList с определенным индексом.
Код

List l = new ArrayList();
l.add("test1");
l.add("test2");
l.add("test3");

if(l.get(0) ..... и вот тут нужно проверить, входит значение с этим в индексом в диапазон допустимых)
// Что - то типа:
if(l.get(0) IN ("cool1","cool2")) {входит}
else {не входит}

PM MAIL   Вверх
serger
Дата 3.12.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

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



В java все коллекции строго дифференцированы. То есть каждая выполняет ОДНУ функцию. Это просто решение разработчиков.

И да, при переносе кода с нек. других языков приводит к трудностям. Привыкайте и меняйте свои привычки.

Это сообщение отредактировал(а) serger - 3.12.2009, 10:05


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
goodday1941
Дата 3.12.2009, 14:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(freshAngel @  2.12.2009,  20:53 Найти цитируемый пост)
Мне нужно проверить значение из ArrayList с определенным индексом.
List l = new ArrayList();
l.add("test1");
l.add("test2");
l.add("test3");
if(l.get(0) ..... и вот тут нужно проверить, входит значение с этим в индексом в диапазон допустимых)
// Что - то типа:
if(l.get(0) IN ("cool1","cool2")) {входит}
else {не входит}


ну дык ничего же принципиально  не меняеться, у вас есть коллекция допустимых значений, далее по ней list.contains(el) и поучаем входит или не входит

тоесть имеем две коллекции первая со значениями элементов, вторая с допустимыми значениями (лучше правда Set а не List брать для допустимых значений)


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
ivanovpv
Дата 3.12.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Цитата(freshAngel @  1.12.2009,  21:32 Найти цитируемый пост)
Но желательно уместить все это покороче.


Короче еще не означает быстро...

Ваше выражение:
Код

if (Hash.get(i).get(4).equals("cool") && Hash.get(i).get(5).equals("a1") || Hash.get(i).get(5).equals("a2")){
}

Будет выполняться Java машиной слева-направо, то есть с точки зрения оптимизации их надо расположить по другому (начиная с "OR")
Код

if (Hash.get(i).get(5).equals("a1") || Hash.get(i).get(5).equals("a2") && Hash.get(i).get(4).equals("cool")){
}

Например выражение:
Код

boolean b = (n == 0) || (m/n > 2);

никогда не даст деление на "ноль" именно из-за этой особенности Java, поскольку сразу после выполнения n==0 переменная b примет значение true без выполнения второй операции


Это сообщение отредактировал(а) ivanovpv - 3.12.2009, 16:07


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
freshAngel
Дата 5.12.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



У меня такой вот код:
Код

Vector<ArrayList> hash = new Vector(0);
Vector<ArrayList> hash2 = new Vector(0);

ArrayList myList = new ArrayList();

for (int i=0; i<5; i++) {
myList.clear();

myList.add(i);
myList.add(i+1);
myList.add(i+2);

hash.addElement(myList);
}

for (int i=0; i<5; i++) {
myList.clear();

myList.add(i);
myList.add(i+1);
myList.add(i+2);

hash2.addElement(myList);
}


myList.clear(); // Очищаем myList, дабы он будет использовать для других вещей.

System.out.println("hash.get(0).get(0): "+hash.get(0).get(0).toString());


Хочу получить вектор, элементами которого являются ArrayList с нужными значениями!
А получаю ексепшен:
Код

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0


Я пробовал убирать myList.clear(), после циклов.
Вроде ексепшена вы выдавало, только не понимаю тогда, что ему мешает очистить ArrayList и причем тут мои вектора!???
Ну использовал я их, что - бы записать значения в вектор и что!?
 smile 



Это сообщение отредактировал(а) freshAngel - 5.12.2009, 16:33
PM MAIL   Вверх
math64
Дата 6.12.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Нужно вместо myList.clear(); использовать myList = new ArrayList();
hash.addElement(myList); вставляет myList в hash, а не его копию.
А поскольку ты делаешь myList.clear(); в hash находится несколько экзампляров пустого списка myList.
PM   Вверх
freshAngel
  Дата 7.12.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо большое всем!!!
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.0514 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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