| 
 | 
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Уважаемый форумчане, здравствуйте. Нужен ваш совет. Допустим у меня есть класс A и, к примеру, три его наследника: B, C и D. Я создаю коллекцию, скажем ArrayList list, кладу туда list.put(new B()) кого-то или всех из наследников. Вопрос, как мне проверить, что в коллекции содержатся все наследники? Именно не найти лишних, не убедиться, что все они наследники, а выяснить все ли из трех на месте или кого нет? Пожалуйста, подскажите ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 18:30 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  GrossmasteR, Циклом ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 18:46 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp, а есть возможность поподробнее. мне нужен какой-то contains по типу или instanceof наоборот что ли. То есть допустим у меня есть, пусть будет, Arraylist list. Я туда положил, к примеру, только 1 из 3 наследников list.put(new B()) И потом я проверяю как-то A "instanceof наоборот" list.get(i) — false, а B "instanceof наоборот" list.get(i) — true и т.д. Итого двух таких то не хватает ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 18:48 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  GrossmasteR Уважаемый форумчане, здравствуйте. Нужен ваш совет. Допустим у меня есть класс A и, к примеру, три его наследника: B, C и D. Я создаю коллекцию, скажем ArrayList list, кладу туда list.put(new B()) кого-то или всех из наследников. Вопрос, как мне проверить, что в коллекции содержатся все наследники? Именно не найти лишних, не убедиться, что все они наследники, а выяснить все ли из трех на месте или кого нет? Пожалуйста, подскажите Правильный ответ такой - тебе надо не это, просто у тебя есть некая проблема которую ты тщательно скрываешь почему-то, придумал костыль чтобы его решить и будешь до последнего отпираться что это не так. Использовать в одной коллекции объекты разных типов, пусть и наследников - это очень короткий путь прострелить себе ногу. Тебе надо понять что привело к этой ситуации и передизайнить систему, это единственный правильный вариант. Скорее всего ты скажешь - так задизайнено, не мое это дело, скажите просто как и т.д. - в таком случае ответ Petro самый разумный - цикл ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 18:53 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Что такое "instanceof наоборот' ? Для меня, наоборот это поменять A instanceof B на B instanceof A ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 18:54 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  GrossmasteR что все они наследники, а выяснить все ли из трех на месте или кого нет? Пожалуйста, подскажите Циклом. there_is_B boolean = false; there_is_C boolean = false; there_is_D boolean = false; for ( ).... if ( there_is_B && there_is_C && there_is_D ) { return "OK"; } else { return ""; } ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 18:58 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  GrossmasteR instanceof наоборот" Возле компа? Давай свой код. Че стеснятся. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 19:08 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Кода нет. Это учебная задача. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Как узнать, какого именно наследника из B,C,D не хватает, если кого-то не хватает? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 19:48 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Чему призвана научить эта задача и в каком виде изначально сформулирована? В общем виде задача в java не решаема. Придется так или иначе знание о подклассах включать в код. Проще всего завести Set<Class<?>> subclasses и потом сравнивать с этим сетом свой лист. Алгоритм проходится на первом курсе в разделе "двумерные массивы". ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 20:24 | 
  
  
  
   | 
||
| 
 
Поиск в коллекции по типу 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  GrossmasteR Кода нет. Это учебная задача. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Как узнать, какого именно наследника из B,C,D не хватает, если кого-то не хватает? В чем проблема? if ( ! isB ) { System.out.println( "There is not B" ); } if ( ! isC ) { System.out.println( "There is not C" ); } if ( ! isD ) { System.out.println( "There is not D" ); } ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.03.2020, 20:38 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=39940767&tid=2120866]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    44ms | 
get topic data:  | 
    13ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    57ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 13ms | 
| total: | 162ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.