Hallo,
mir ist unklar, ob ich die Aufgabenstellung richtig verstanden habe...
Heißt es, wenn ich list.add(elem) verwende, dann fügt es jede Element am Ende der liste ein. Also falls der index von dem kürzesten String kleiner als der index vom größten String ist, heißt dass der kleinste auch als frühestens da war also muss man den ausprinten oder verstehe ich das vollkommen falsch...
package de.codegym.task.task07.task0712;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Kürzeste oder längste
*/
public class Solution {
public static void main(String[] args) throws Exception {
//schreib hier deinen Code
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
ArrayList<Integer> laenge = new ArrayList<Integer>();
for (int i = 0; i < 10; i++){ // strings einlesen
String s = reader.readLine();
list.add(s);
}
for (int i = 0; i < 10 ; i++) { // lange der strings in arraylist
int s = list.get(i).length();
laenge.add(s);
}
int max = laenge.get(0);
for (int i = 1; i < 10; i++) { //max finden
if (max < laenge.get(i)){
max = laenge.get(i);
}
}
int min = laenge.get(0);
for (int i = 1; i < 10; i++) { //min finden
if (min > laenge.get(i)){
min = laenge.get(i);
}
}
//System.out.println(min + " " + max);
int indexmin = 0;
int indexmax = 0;
for(int i = 0; i < 10; i++){
if (min == list.get(i).length()){
indexmin = i;
}
if (max == list.get(i).length()){
indexmax = i;
}
}
//System.out.println(indexmax + " " + indexmin);
if (indexmax > indexmin){
System.out.println(list.get(indexmin));
}else {
System.out.println(list.get(indexmax));
}
}
}