Member 14088951 Ответов: 1

Как сделать таблицу с моим arraylist, которая содержит различные объекты из унаследованных классов?


Я делаю проект изучения животных, в котором я сделал разные унаследованные классы, которые имеют одни и те же Пивы. Мне нужно распечатать код в хорошо отформатированной таблице.
Мой код:
ArrayList и Л;животные> У животных= новый ArrayList и Л;животные&ГТ;();
добавить(новых Тигров("Panthera tigris tigris","Asia", "The Bengal Tiger", "Tropical", 490, 7)); // Тигры
животные.добавить(новые Тигры ("Panthera tigris altaica","Азия", "Сибирский тигр", "лесные массивы", 400, 3));
животные.добавить(новый Тигра("тигр sumatrae","Азия", "Тигр Суматры", "тропический", 310, 5));
животные.добавить(новый Тигра("тигр jacksoni","Азия", "Малайский тигр", "тропический", 260, 5));
животные.добавить(новый Тигра("тигр sondaica","Азии", "яванского тигра", "тропический",, 310, 2));
животные.добавить(новый Тигра("тигр Балик", "Азия", "балийский Тигр", "тропический", 200, 5));
животные.добавить(новый Тигра("тигр виргата","Европа", "Каспийский Тигр", "тропический", 530, 7));
животные.добавить(новый Тигра("тигр amoyensis","Азия", "Южно-Китайском Тигра", "тропический", 330, 4));
добавить(новые собаки ("Canis lupus familiaris", "Европа", "бульдог", "умеренный", 55, 2)); // собаки
добавить(новые собаки ("Canis lupus familiaris", "Europe", "The Beagle", "Household", 24, 3));
животные.добавить(новые собаки ("Canis lupus familiaris", "Азия", "Мопс", "домашние", 20, 5));
животные.добавить(новые собаки ("Canis lupus familiaris", "Европа", "боксер", "Дикий", 71, 4));
животные.добавить(новые собаки ("Canis lupus familiaris", "Европа", "пудель", "домашнее хозяйство", 9, 2));
животные.добавить(новый собаки("Canis волчанка familiaris", "Азия", "золотистый ретривер", "тропический", 75, 3));
животные.добавить(новые собаки ("Canis lupus familiaris", "Европа", "немецкая овчарка", "умеренный", 88, 3));
животные.добавить(новые собаки ("Canis lupus familiaris", "Европа", "ротвейлер", "Дикий", 130, 2));
добавить новых слонов("Elephant maximus", "Asia", "The Asian Elephant", "Tropical", 12000, 1)); // слоны
животные.добавить(новый Слон("Слон" Максимус "у", "Азия", "индийский слон", "тропический", 12000, 12));
животные.добавить(новые слоны ("Loxodonta africana", "Африка", "Африканский кустарниковый слон", "Саввана", 13000, 6));
животные.добавить(новые слоны ("Loxodonta cyclotis", "Африка", "африканский лесной слон", "тропический", 60000, 2));
добавить(новые слоны ("Elephas maximus borneensis", "Asia", "The Borneo Elephant", "Tropical", 14000, 8));
животные.добавить(новые слоны ("Elephas maximus maximus", "Азия", "шри-ланкийский слон", "лесные массивы", 5500, 5));
добавить(новые слоны ("Palaeoloxodon antiquus", "Азия", "прямой Бивневый слон", "умеренный", 22600, 8));
животные.добавить(новые слоны("Palaeoloxodon cyrpriotes", "Азия", "кипрский карликовый слон", "тропический", 440, 3));
животные.добавить(новые уплотнения("Mirounga", "Северная Америка", "морского слона", "водные", 5000, 2)); // уплотнения
животные.добавить(новые уплотнения("сайт phoca vitulina", "Северная Америка", "в гавани печать", "Водный", 130, 3));
животные.добавить(новые уплотнения("гренландские тюлени", "Северная Америка", "гренландского тюленя", "Арктика", 290, 1));
животные.добавить(новые уплотнения("Halichoerus grypus", "Северная Америка", "серый тюлень", "Водный", 550, 3));
добавить(новые тюлени("Pusa hispida", "Asia", "кольчатый тюлень", "Artic", 160, 4));
животные.добавить(новые уплотнения("сайт phoca largha", "Северная Америка", "ларги", "Водный", 160, 3));
животные.добавить(новые уплотнения("Hydrurga leptonyx", "Антарктида", "морской леопард", "Арктика", 780, 2));
животные.добавить(новые уплотнения("Monachini", "Северная Америка", "тюлени-монахи", "Водный", 600, 2));
добавить(новые киты ("Orcinus orca", "North America", "The Killer Whale", "Aquatic", 12000, 1)); // киты
животные.добавить(новые киты ("Дельфинаптерус", "Северная Америка", "Белуха", "Водный", 3000, 3));
добавить(новые киты("Monodon monoceros", "Asia", "The Narwhal Whale", "Aquatic", 2000, 5));
животные.добавить(новых китов("Balaenoptera домовая мыши", "Антарктида", "Синий кит", "Арктика", 300000, 3));
животные.добавить(новых китов("Мегаптера novaeangliae", "Северная Америка", "горбатый кит", "Водный", 66000, 5));
животные.добавить(новые киты("Ливятан мелвиллей", "Северная Америка", "Ливятан Кит", "Водный", 100000, 2));
животные.добавить(новых китов("Eschrichtius робустуса", "Северная Америка", "серый кит", "Водный", 60000, 18));
животные.добавить(новые киты ("Balaenoptera physalus", "Азия", "плавник кита", "Водный", 100000, 7));
}

Что я уже пробовал:

Я пытался использовать escape-последовательности и циклы для печати своего кода.

System.out.println("Нажмите кнопку для отображения животных");
сканер = новый сканер(System.in);
setScanner(новый сканер(scanner.nextLine()));
System.out.println(String.format("%-10s%-10s%-%10s-%10s-%10s-10s", " научное название ", " континент происхождения ", "имя", "естественная среда обитания", "вес", " количество потомства"));

для (животных : Животные)
Системы.из.код println(строка.формат("%-10С%-10С%-10д", а.getscientificname(), а.getcontinentoforgin(), а.метод getname(), а.getnaturalhabitat(), а.getweight(), а.getnumofoffspring()));

Это дает мне много ошибок :(


// Кроме того, просто для бонуса, как бы я сделал метод поиска моего животного arraylist, чтобы найти всех животных, родом из Азии? :))

Вся помощь будет оценена по достоинству :))

Richard MacCutchan

"Это дает мне много ошибок :("
Что такое "это" и какие ошибки?

1 Ответов

Рейтинг:
0

CPallini

Вы должны использовать полиморфизм. Попробуйте этот минималистский пример:

import java.util.ArrayList;

class ReportAnimals
{
  public static void  main(String arg[])
  {
    ArrayList <Animal> animals = new ArrayList <Animal>();
    animals.add(new Tiger("Panthera tigris tigris","Asia"));
    animals.add(new Tiger("Panthera tigris altaica","Asia"));
    animals.add(new Seal("Mirounga", "North America"));
    animals.add(new Seal("Phoca vitulina", "North America"));

    for ( Animal a : animals)
    {
      System.out.println(a.toString());
    }
  }
}

interface Animal
{
  public String toString();
}

class Tiger implements Animal
{
  String name, area;

  public Tiger(String name, String area)
  {
    this.name = name; this.area = area;
  }

  public String toString()
  {
    return String.format("A Tiger: %-30s%-10s", name, area);
  }
}

class Seal implements Animal
{
  String name, area;

  public Seal(String name, String area)
  {
    this.name = name; this.area = area;
  }

  public String toString()
  {
    return String.format("A Seal : %-30s%-10s", name, area);
  }
}