Arraylisten nebeneinander ausgeben

pbug

Neues Mitglied
Hallo zusammen,

ich bin noch neu in Java und hätte mal eine Frage an euch.
Wie kann ich Arraylisten nebeneinander ausgeben lassen ?
Ich will ein Namen im Sternchenformat ausgeben lassen aber wenn ich die Listen ausgeben will dann printet Java es untereinander aus. Wie kann ich diese stattdessen nebeneinander ausgeben lassen ?
Java.PNG

Mit freundlichen Grüßen,
P. Buganik
 
Du musst die Ausgabe schon Zeile für Zeile in die Konsole schreiben. Also erst die erste Zeile von deinem P und und deinem I, dann die zweite Zeile von P und I usw...

Mach stattdessen aber doch lieber was Sinnvolles .... 😵
 
#println() dort steckt ln drin, was eine, am Ende des geprinteten, neue Zeile anfügt. #print() macht dies nicht.
 
Zuletzt bearbeitet:
Es muss aber auch gehen das man jeden Buchstaben mit Sternchen deklariert und dann die Buchstaben nebeneinander ausgibt. Oder ist es besser dafür ein Array zu nehmen anstatt einer ArrayListe ?
Ich hab schon gesehen das man z.B. den Buchstaben "P" in einem Array zusammenstellt, dann "I" usw...
Aber wie gebe ich die Nebeneinander aus ?
Ich will nicht jede Zeile von dem Namen deklarieren, das ist ja nicht Sinn der Übung.
 
Erstmal musst du die Länge der Buchstaben einheitlich machen. Dann könntest du alle 0er in einer Zeile ausgeben, dann newLine, dann die 1er usw.
 
Oi, so viele Ausrufezeichen... würd bei uns nicht durchs Codereview kommen. 😵

Edit: Soll das so?
Java:
public class JavaApplication5 {

    ArrayList p = new ArrayList();
    ArrayList i = new ArrayList();

    public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
        JavaApplication5 ja = new JavaApplication5();
        ja.p.add("**");
        ja.p.add("*");
        ja.p.add("***");

        ja.i.add("**");
        ja.i.add("*");
        ja.i.add("***");

        for (Field declaredField : ja.getClass().getDeclaredFields()) {
            String name = declaredField.getName();
            ArrayList a = (ArrayList) declaredField.get(ja); // check this first
            for (Object object : a) {
                String s = object.toString();
                for (char c : s.toCharArray()) {
                    if (c == '*') {
                        System.out.print(name);
                    }
                }
                System.out.println("");
            }
        }
    }
}

(Du musst java.lang.reflect.*; importieren) Das gibt jetzt für jedes '*' den Namenbuchstaben der Liste aus, nebeneinander, zeilenweise.
 
Zuletzt bearbeitet von einem Moderator:
@DerWissende welchem Anfänger, der gerade mit Arrays anfängt und kein System.out.print(); kennt hilft dieser Code?!?
Der ist viel zu kompliziert, für das einfache Problem und hilft auch nicht wirklich.
 
Naja, ich lese eine Anforderung, für jedes Sternchen ('*') den Anfangsbuchstaben der Liste ausgeben lassen, in der es liegt! Und dann setze ich das einfach um...

Vielleicht hab ich mich auch komplett verrannt... 😕

Was ist/war denn jetzt sein Problem, dass printLN auch newline/line new ausgibt?
 
Um meine Idee von oben nochmal aufzugreifen (sowas in der Art):
Java:
public static void main(String[] args) {
    String[] capA = {"* * * ",
                     "*   * ",
                     "* * * ",
                     "*   * "};

    String[] capP = {"* * * ",
                     "*   * ",
                     "* * * ",
                     "*     "};

    ArrayList<String[]> name = new ArrayList<>();
    name.add(capP);
    name.add(capA);
    name.add(capP);
    name.add(capA);

    for(int i = 0; i < capA.length; i++){
        for(String[] aName : name) {
            System.out.print(aName[i]);
        }
        System.out.println();
    }
}
 
Wäre ich allwissend, hätte ich ja hellseherische Fähigkeiten... Die Be- oder Umschreibung des Problems gibt nicht nicht viel her. Ich jedenfalls hab das nicht sofort verstanden. Hätte er einfach gesagt, ich möchte ein P zeichnen, das so aussieht:
Code:
****
*  *
****
*
*

dann wäre es für mich "klarer" gewesen. 🙁 Aber stimmt, jeder sollte Fragen dürfen. 🙄
 
dann doch in etwa so:
Java:
public class JavaApplication5 {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("");
        list.add("");
        list.add("");
        list.add("");

        addChar('P', list);
        addChar('A', list);
        addChar('P', list);
        addChar('A', list);

        printList(list);
    }

    static void addChar(char c, ArrayList list) {
        if (c == 'A') {
            list.add(0, list.remove(0) + "* * *  ");
            list.add(1, list.remove(1) + "*   *  ");
            list.add(2, list.remove(2) + "* * *  ");
            list.add(3, list.remove(3) + "*   *  ");
        }
        if (c == 'P') {
            list.add(0, list.remove(0) + "* * *  ");
            list.add(1, list.remove(1) + "*   *  ");
            list.add(2, list.remove(2) + "* * *  ");
            list.add(3, list.remove(3) + "*      ");
        }
    }

    static void printList(ArrayList list) {
        for (Object object : list) {
            System.out.println(object);
        }
    }
}

Code:
* * *  * * *  * * *  * * * 
*   *  *   *  *   *  *   * 
* * *  * * *  * * *  * * * 
*      *   *  *      *   *

das ist kaum zu lesen und langsam, aber wenn verlangt. 🙁
 

Zurück
Oben