Kolekcje problem z zadaniem

Kolekcje problem z zadaniem
J4
J4
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0

Witam mam takie zadanko Utwórz klasę City, dodaj w niej atrybuty:

name (String)
population (int)
Klasa powinna mieć też konstruktor przyjmujący wszystkie 2 parametry

Następnie w pliku Main3.java:

Napisz metodę public static List<City> initialize(), która utworzy 5 obiektów klasy City, doda je do listy, którą następnie zwróci.
Napisz metodę public static List<City> firstSubList(List<City> list, int start, int end ), która zwróci sublistę elementów listy list o początku start i końcu end. Wykorzystaj dowolną pętlę.
Napisz metodę public static List<City> secondSubList(List<City> list, int start, int end ), która zwróci sublistę elementów listy list o początku start i końcu end. Wykorzystaj wbudowaną metodę List.subList(int fromIndex, int toIndex).

i nie mam pojęcia jak go wykonać . Biorę się za to już 2 dzień i nie jestem w stanie nic wymyśleć zmieniałem City na listę bawiłem się w dodawanie i dziedziczenie innych class i nic mi nie chce wyjść kodu na razie nie zamieszczam bo ciągle i tak go usuwam i piszę na nowo ponieważ nie ogarniam. Byłbym wdzięczny za jakąś podpowiedź . Np. czy do pierwszej metody coś jeszcze trzeba dodać np void czy da się to rozwiązać za pomocą tak napisanej .

RewAnd
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:36
0

Ale w czym masz konkretnie problem? Patrzysz na zadanie i lecisz po kolei.
#edit: https://docs.oracle.com/javase/tutorial/java/index.html - tutaj masz wszystko co Ci potrzebne

edytowany 1x, ostatnio: RewAnd
J4
J4
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0
RewAnd napisał(a):

Ale w czym masz konkretnie problem? Patrzysz na zadanie i lecisz po kolei.
Zrobiłem klasę CIty umieściłem w nim

Kopiuj
public class City{
    private  String name;
    private Integer population;


    public City(String name, Integer population) {
        this.name = name;
        this.population = population;
    }

    public City() {

    }

    public String getName() {
        return name;
    }

    public Integer getPopulation() {
        return population;
    }

i nie wiem jak zrobić w klasie Main3 żeby utworzyło mi 5 obiektów City w tej metodzie public static List<City> initialize(){} .

RewAnd
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:36
0

Zamiast Integer to lepiej użyć inta - tak jest napisane w zadaniu :)
Konstruktor bezargumentowy jest niepotrzebny. Zrobisz City city = new City(); city.getName() i masz NullPointerException.

nie wiem jak zrobić w klasie Main3 żeby utworzyło mi 5 obiektów City w tej metodzie public static List<city> initialize(){}

https://docs.oracle.com/javase/tutorial/java/javaOO/objects.html - tutaj masz jak się tworzy obiekty. Po prostu zrób to w metodzie initialize().

edytowany 1x, ostatnio: RewAnd
J4
J4
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0
RewAnd napisał(a):

Zamiast Integer to lepiej użyć inta - tak jest napisane w zadaniu :)
Konstruktor bezargumentowy jest niepotrzebny. Zrobisz City city = new City(); city.getName() i masz NullPointerException.

nie wiem jak zrobić w klasie Main3 żeby utworzyło mi 5 obiektów City w tej metodzie public static List<city> initialize(){}

https://docs.oracle.com/javase/tutorial/java/javaOO/objects.html - tutaj masz jak się tworzy obiekty. Po prostu zrób to w metodzie initialize().

Ogarnąłem już dzięki wielkie :D

J4
J4
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0

co robię źle że wyskakuje mi null 0 ?

Kopiuj


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Main3  {



    public static List<City> initialize(){
       List<City> city = new LinkedList<>();
       city.add(new City("Andrzej",1));
       city.add(new City("Julia",2));
       city.add(new City("Marek",3));
       city.add(new City("Tomek",4));
       city.add(new City("Arek",5));

            for(City s : city ){
                System.out.println(city);
                  }   return city;
   }


    public static void main(String[] args) {


        City city = new City();

        System.out.println(city.getName()+city.getPopulation());

    }




}

szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:3 dni
  • Lokalizacja:Kraków
  • Postów:1694
1

Tworzysz sobie City domyślnym konstruktorem który nie ustawia pól z tej klasy. Potem wypisujesz te wartości które są nullem. Czego tutaj nie rozumiesz?

HE
HE
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 4 lata
  • Postów:88
0
Jasskier47 napisał(a):

co robię źle że wyskakuje mi null 0 ?

Kopiuj


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Main3  {



    public static List<City> initialize(){
       List<City> city = new LinkedList<>();
       city.add(new City("Andrzej",1));
       city.add(new City("Julia",2));
       city.add(new City("Marek",3));
       city.add(new City("Tomek",4));
       city.add(new City("Arek",5));

            for(City s : city ){
                System.out.println(city);
                  }   return city;
   }


    public static void main(String[] args) {


        City city = new City();

        System.out.println(city.getName()+city.getPopulation());

    }




}

Próbujesz wypisać nieistniejące dane. W konstruktorze "City city = City(tutaj)" musisz przekazać jakieś dane, żeby to zadziałało. Natomiast jeśli chcesz wypisać to, co siedzi w liście, użyj API strumieni.

Delor
Dajesz tą samą nazwę różnym elementom i potem gubisz się. city jest obiektem City czy listą List<City>?
J4
J4
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0

muszę użyć initialize ale nie wiem jak to zrobić żeby działało

J4
J4
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0
Hegemon napisał(a):
Jasskier47 napisał(a):

co robię źle że wyskakuje mi null 0 ?

Kopiuj


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Main3  {



    public static List<City> initialize(){
       List<City> city = new LinkedList<>();
       city.add(new City("Andrzej",1));
       city.add(new City("Julia",2));
       city.add(new City("Marek",3));
       city.add(new City("Tomek",4));
       city.add(new City("Arek",5));

            for(City s : city ){
                System.out.println(city);
                  }   return city;
   }


    public static void main(String[] args) {


        City city = new City();

        System.out.println(city.getName()+city.getPopulation());

    }




}

Próbujesz wypisać nieistniejące dane. W konstruktorze "City city = City(tutaj)" musisz przekazać jakieś dane, żeby to zadziałało. Natomiast jeśli chcesz wypisać to, co siedzi w liście, użyj API strumieni.

o strumieniach sie jeszcze nie uczyłem .

K5
Studia? Szkoła? Szkoła programowania?
J4
Jasskier47
szkoła prgrm. już ogarnąłem
K5
Nie chcę Cię dołować, ale jeśli masz problemy już na samym starcie z podstawami obiektówki to potem będzie jeszcze ciężej. Siedź w domu ile wlezie jeśli faktycznie chcesz coś wynieść z tych zajęć. I nie oczekuj na forum gotowego kodu, tylko pokazuj swoje próby. Bez pracy własnej za daleko nie zajdziesz.
J4
Jasskier47
dlatego pracuje sam
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:3 dni
  • Lokalizacja:Kraków
  • Postów:1694
1

Żeby było krótko, bo nie wiem co ty chcesz zrobić:
initialize zwraca ci listę. Możesz sobie tę listę do czegoś przypisać i wypisać jej elementy.
Możesz zrobić print(initialize.get(0).getName());

J4
Jasskier47
dzięki wielkie zapomniałem wgl o tym że można tak zrobić już ogarniam wszystko
J4
J4
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0
Kopiuj
public class Main3  {                              
                                                   
                                                   
                                                   
                                                   
   public static List<City> initialize(){          
          List<City> city = new LinkedList<>();    
          city.add(new City("Andrzej ",1));        
          city.add(new City("Julia ",2));          
          city.add(new City("Marek ",3));          
          city.add(new City("Tomek",4));           
          city.add(new City("Arek",5));            
                 return city;                      
      }                                            
                                                   
    public static void main(String[] args) {       
        System.out.print(initialize());            
                                                   
    }                                              
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:3 dni
  • Lokalizacja:Kraków
  • Postów:1694
1

Odnośnie ostatniego posta. Jak chcesz tak wypisywać, to sobie napisz toString
coś w tym stylu:

Kopiuj
@Override
public String toString()
{
    return getName() + " " + getPopulation();
}
edytowany 1x, ostatnio: szweszwe
J4
Jasskier47
mam stworzoną w City

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.