Nur eine bestimmte Anzahl an Arrays ausgeben

Diskutiere Nur eine bestimmte Anzahl an Arrays ausgeben im Java Basics - Anfänger-Themen Bereich.
B

benice213

Hallo,
ich bin neu in der Programmierung und wollte fragen, wie ich ein nur eine bestimmte Anzahl des Arrays ausgeben kann?
Also z.B gebe ich per System in die Zahl 2 ein, und bekomme nun die ersten beiden Stellen des Arrays ausgegeben.
Funktioniert das mit for(int) ?
Wäre nett wenn ihr mir eure Vorschläge schreiben würdet.
Bin neu in dem Forum und in diesem Gebiet, seid bitte nachischtig mit mir :).
Liebe Grüße
 
T

Tobias-nrw

Hallo @benice213 , so geht das
Java:
public class PartialArray {
	int[] array = new int[100];

	void setze(int i, int v) {
		array[i] = v;
	}

	void drucke(int i) {
		System.out.println(array[i]);
	}

	void druckeBis(int n) {
		for (int i = 0; i < n; i++) {
			drucke(i);
		}
	}

	void druckeVon(int x) {
		for (int i = x; i < array.length; i++) {
			drucke(i);
		}
	}

	void druckeVonBis(int x, int y) {
		for (int i = x; i < y; i++) {
			drucke(i);
		}
	}

	public static void main(String[] args) {
		PartialArray p = new PartialArray();
		p.setze(0, 1);
		p.setze(1, 2);
		p.setze(2, 3);
		p.druckeVonBis(1, 3);
	}
}
 
M

M.L.

Und generell wären Slice-Operationen, SubArray, Arrays.CopyOfRange() potentielle Stichwörter beim Recherchieren.
 
B

benice213

Irgendwie kriege ich das nicht richtig hin.
Ich möchte, dass wenn ich in die Konsole z.B 2 schreibe, er mir die ersten beiden Variabeln des Arrays ausgiebt.
Momentan ist es so, dass ich immer nur die erste Variable des Autos erhalte, egal welche Zahl ich eingebe.
Wisst ihr was ich ändern muss, damit es so funktioniert wie ich es mir vorstelle?
Code:
      String[] horsePower = {"286", "290", "430", "800", "176", "154", "460"};
      String[] constructionYear = { "2019", "2018", "2017", "2018", "2015", "2015", "2019"};
      String[] carBrands = {"Mercedes-Benz", "BMW", "Audi", "Pagani", "Skoda", "Seat","Ford"};
      String[] carColor = {"Weiß", "Blau", "Grün", "Rot", "Schwarz", "Weiß", "Schwarz"};
      String[] carNames = {"S-Klasse", "BMW M3", "RS3", "Huayra", "Superb", "Leon", "Mustang"};
      
      Car[] cars = new Car[7];
      cars[0] = new Car();
      cars[1] = new Car();
      cars[2] = new Car();
      cars[3] = new Car();
      cars[4] = new Car();
      cars[5] = new Car();
      cars[6] = new Car();
      
    
            for(int i = 0; i < cars.length; i++) {
              cars[i].setColor(carColor[i]);
              cars[i].setBrand(carBrands[i]);
              cars[i].setName(carNames[i]);
              cars[i].setHorsePower(horsePower[i]);
              cars[i].setConstructionYear(constructionYear[i]);
              cars[i].setSedan(true);
              
              
        int number;
        
         System.out.println("Wie viele Autos sollen ausgegeben werden?");     
         for(int p = 0; p < cars.length; p++) {
             number = new java.util.Scanner( System.in ).nextInt();
             System.out.println("Automarke    " + "Name des Autos    " + "Farbe      " + "Pferdestärken     " + "Baujahr    " + "Limousine    ");
              System.out.print(addSpaces(cars[p].getBrand(),16));
              System.out.print(addSpaces(cars[p].getName(),16));
              System.out.print(addSpaces(cars[p].getColor(),10));
              System.out.print(addSpaces(cars[p].getHorsePower(),18));
              System.out.print(addSpaces(cars[p].getConstructionYear(),11));
              System.out.print(cars[p].isSedan());
              System.exit(0);
         }
 
T

temi

Außerdem noch:
Java:
      Car[] cars = new Car[7];
      cars[0] = new Car();
      cars[1] = new Car();
      cars[2] = new Car();
      cars[3] = new Car();
      cars[4] = new Car();
      cars[5] = new Car();
      cars[6] = new Car();
Du befüllst dein Array "cars" mit sieben identischen "Cars".

Edit: Ach so, ja du änderst die Eigenschaften in einer Schleife. Aber schau mal, wo diese Schleife endet "}".

Besser wäre es in dieser Schleife zu schreiben cars[i] = new Car();. Die beste Lösung wäre ein anständiger Konstruktor.
 
T

Tobias-nrw

Ganz auf die schnelle:
Java:
import java.util.Scanner;

public class Car {
	String horsePower, constructionYear, carBrand, carColor, carName;

	Car(String horsePower, String constructionYear, String carBrand, String carColor, String carName) {
//Evtl. Ausnahmebehandlung
		this.horsePower = horsePower;
		this.constructionYear = constructionYear;
		this.carBrand = carBrand;
		this.carColor = carColor;
		this.carName = carName;
	}

	@Override
	public String toString() {
		return String.format("Car [horsePower=%s, constructionYear=%s, carBrand=%s, carColor=%s, carName=%s]",
				horsePower, constructionYear, carBrand, carColor, carName);
	}
}

class CarList {
	Car[] carArray = new Car[100];
	int index = 0;

	void addCar(Car c) {
//Ausnahmebehandlung
		carArray[index] = c;
		index++;
	}

	void print(int from, int to) {
//Ausnahmebehandlung
		for (int i = from; i < to; i++) {
			System.out.println(carArray[i]);
		}
	}

	@SuppressWarnings("resource")
	public static void main(String[] args) {
		String[] horsePower = { "286", "290", "430", "800", "176", "154", "460" };
		String[] constructionYear = { "2019", "2018", "2017", "2018", "2015", "2015", "2019" };
		String[] carBrands = { "Mercedes-Benz", "BMW", "Audi", "Pagani", "Skoda", "Seat", "Ford" };
		String[] carColor = { "Weiß", "Blau", "Grün", "Rot", "Schwarz", "Weiß", "Schwarz" };
		String[] carNames = { "S-Klasse", "BMW M3", "RS3", "Huayra", "Superb", "Leon", "Mustang" };
		CarList list = new CarList();
		for (int i = 0; i < 7; i++) {
			list.addCar(new Car(horsePower[i], constructionYear[i], carBrands[i], carColor[i], carNames[i]));
		}

		System.out.println("Wie viele Autos sollen ausgegeben werden?");
		final int n = new Scanner(System.in).nextInt();
		list.print(0, n);
	}
}
 
Thema: 

Nur eine bestimmte Anzahl an Arrays ausgeben

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben