Also habe ich vier Listen:Wie bekomme ich die kleinste Liste?
1, 2, 3, 4
1, 2, 3
1, 2
1, 2, 3, 4, 5
Was ist der einfachste Weg, um die man mit kleinster Größe in Elementen des Erhaltens (list.size())?
Also habe ich vier Listen:Wie bekomme ich die kleinste Liste?
1, 2, 3, 4
1, 2, 3
1, 2
1, 2, 3, 4, 5
Was ist der einfachste Weg, um die man mit kleinster Größe in Elementen des Erhaltens (list.size())?
Ich weiß nicht, wie Sie Ihre Listen benannt haben, also werde ich sie einfach Liste a, b, c und d nennen.
public List<?> getLongestList(List<?> a, List<?> b, List<?> c, List<?> d) {
if (a.size() >= b.size() && a.size() >= c.size() && a.size() >= d.size()) return a;
if (b.size() >= a.size() && b.size() >= c.size() && b.size() >= d.size()) return b;
if (c.size() >= a.size() && c.size() >= b.size() && c.size() >= d.size()) return c;
if (d.size() >= a.size() && d.size() >= b.size() && d.size() >= c.size()) return d;
return null; //impossible to reach
}
Ich weiß, dass dies eine sehr hässliche Lösung, aber es ist einfach für Java-Anfänger zu verstehen, was ich nehme an, Sie sind. Wenn zwei oder mehr Listen die gleiche Größe haben und am längsten sind, wird die erste zurückgegeben.
Ich denke, die optimale Lösung
public static ArrayList<Integer> getSmallestList(ArrayList<Integer>... input) {
ArrayList<Integer> returnValue = null;
if (input.length > 0) {
returnValue = input[0];
for (ArrayList<Integer> inputIterator : input) {
if (inputIterator.size() < returnValue.size()) {
returnValue = inputIterator;
}
}
}
else
{
System.out.println("No input provided");
}
return returnValue;
}
Der ...
Parameter ermöglicht das Verfahren mit einer beliebigen Menge von Variablen aufgerufen werden Sie wie folgt sein würde.
Ist dies ein Array von Arrays? – tadman
Wie haben Sie diese 4 Listen? Angenommen, es ist eine Liste von Listen: 'listOfLists.stream(). Min (Comparator.comparation (Liste :: Größe)). Get()'. –