Trouble correctly using boolean method along with using recursive methods

i’m currently working on a project that’s uses recursion. Right now i have 3 classes, The first one has the object and variables, along with my methods.

public class Country
{
   private String name;
   private String capital;
   private double population;

   public Country (String name, String capital, double population)
   {
      this.name = name;
      this.capital = capital;
      this.population = population;
   }

   public String getName()
   {
      return name;
   }

   public String getCapital()
   {
      return capital;
   }

   public boolean isLarge()
   {
      if (population > 50.00)
        return true;
      else 
      {
        return false;
      }
   }

   public double getPopulation()
   {
      return population;
   } 

   public String toString()
   {
      return "nName of Country: " + name + "t Country's Capital: " + capital + "t Population of Country: " 
      + population + " Million"+"n";
   }    
}

My second class has all the recursive methods

public class CountryCollection
{
   public static String toString(Country[] list, int n)
   {
       if (n==0)
           return "";
       else
           return toString(list, n-1) + list[n-1].toString();
   }

   public static int countLargeCountries(Country[] list, int n) 
   {
       if (n==0)
          return 0;
       else if (list[n-1].isLarge())
          return countLargeCountries(list, n-1) + 1;
       else
          return countLargeCountries(list, n-1);
   } 

   /*public static Country smallestCountry(Country[] list, int n)
   {
       if (n==1) 
            return list[0];
       else if (list[n-1]<list[0])
          list[0] = list[n-1];
      return smallestCountry(list, n-1);
    }*/
   // keep geting bad operand type WILL FIX LATER dont know why

   public static void printLargeCountries(Country[] list, int n) 
   { 
      if (n>0) 
       {
           printLargeCountries(list, n-1);
           System.out.println(list[n-1].isLarge());
       }
   }
}

this is where im having issue with my code. for the method public static void printLargeCountries(Country[] list, int n)

The output prints true or false whether the countries have their population over 50 million or not. Like this

true
true
false
false
false
false
false
true
false
false
false
false

I cant seem to figure out how to print the countries that have a large population, rather then my output printing out true or false for all the countries whether or not they have a population over 50 million.

I’m looking to have the output print this

(Using recursion)

USA 
France
Japan

or just

Name of Country: USA     Country's Capital: Washington,D.C   Population of Country: 326.17 Million

Name of Country: France  Country's Capital: Paris    Population of Country: 65.23 Million

Name of Country: Japan   Country's Capital: Tokio    Population of Country: 126.53 Million

I then have my test class that scans from an input file called inData.txt

public class TestCountryCollection
{ 
  public static void main(String[]args) throws IOException
  {          
     Country[] myList = new Country [12];
     int myCount = 0; 

     Scanner fileScan;
     double population;
     String name;
     String capital;

     Country oneCountry;

     fileScan = new Scanner (new File("inData.txt"));
     while (fileScan.hasNext())
     {
         name = fileScan.next();
         capital = fileScan.next();        
         population = fileScan.nextDouble();
         oneCountry = new Country(name,capital,population);
         myList[myCount] = oneCountry;
         myCount++;
     }
     CountryCollection obj = new CountryCollection();
     System.out.println("Country Info n"  + obj.toString(myList,myCount));
     System.out.println("Number of Large Countries: " + obj.countLargeCountries(myList,myCount));

     obj.printLargeCountries(myList,myCount);
  }
}

When a try re-writing my code the void method im having issue on, i either am stuck with the output printing true or false, or the output printing nothing at all with no errors. Ive tried something like this but no result

   public static void printLargeCountries(Country[] list, int n) 
   { 
      if (n==0)
        System.out.println("There are no Large Countries");
      else if (list[n-1].isLarge())
        System.out.println(list[n-1]);    
}

Here is the text document in case it helps.

USA           Washington, D.C   326.17
France        Paris        65.23
Slovenia      Ljubljana    2.08
Slovakia      Bratislava   5.44
Liechtenstein Vaduz        0.05
Monaco        MonteCarlo   0.04
Spain         Madrid       46.42
Japan         Tokio        126.53
Afghanistan   Kabul        35.53
Australia     Canberra     24.61
Ghana         Accra        28.83
Norway        Oslo         5.26

Any help would be very appreciated.

Answer

Here you are just printing the result of isLarge:

System.out.println(list[n-1].isLarge());

You should use an if statement to check the result of isLarge, then print the country:

if (list[n-1].isLarge()) {
    System.out.println(list[n-1].getName());
}