2017-05-14 3 views
0

Eingang:Wie automatisch Nummer in aufsteigender Form generieren?

1001 
1003 
1004 
1005 

Ausgabe

1001 
1002 
1003 
1004 
1005 

Gibt es Beispiele JAVA zum automatischen erzeugen die Zahl in aufsteigender Form verwendet? Lassen Sie sagen, wenn das System die Nummer 1001-1005 überprüfen und 1002 fehlt, Auto das System 1002.

+0

so etwas wie eine Schleife? – CIsForCookies

+0

Ja, ein weiteres Beispiel, wenn 1001 bis 1005 und 1004 fehlt, wird das System automatisch 1004 für Sie generieren. – NoName

+1

Wie erhalten Sie die Eingabe? Ist es unbedingt sortiert? – Mureinik

Antwort

3

Sie könnten den kleinsten Wert finden, und dann ist die größte und erzeugen Zahlen dazwischen.

Zum Beispiel

List<Integer> list = Arrays.asList(1001,1003,1004,1005); 
int min = Collections.min(list); 
int max = Collections.max(list); 
IntStream.range(min, max+1).forEach(System.out::println); 
+0

Das ist ein gutes Beispiel und ich werde es als meine Referenz nehmen. Danke – NoName

+0

Auf den richtigen Linien, aber es ist nicht notwendig, alle Zahlen in den Speicher zu laden. – Bathsheba

+0

@Bathsheba konnte nicht verstehen, was Sie zu sagen versuchten. Ist dies in Bezug auf die Tatsache, dass das erste Element das kleinste ist? –

2

erzeugen Sie eine Schleife mit einer Bedingung zum Beispiel verwenden können:

List<Integer> list = new ArrayList<>(); 
list.addAll(Arrays.asList(1001, 1003, 1004, 1005)); 
for (int i = 1001; i < 1005; i++) { 
    if (!list.contains(i)) {//if the list not contain this element 
     list.add(i);//add this element to the list 
    } 
} 
Collections.sort(list);//sort your list 
System.out.println(list);//print your list 

Ausgabe

[1001, 1002, 1003, 1004, 1005] 

Lösung 2

Sie können auch ein Set verwenden, zB:

Set<Integer> set = new HashSet<>(Arrays.asList(1001, 1003, 1004, 1005)); 
for (int i = 1001; i < 1005; i++) { 
    set.add(i);//add element the set 
} 
+4

Ist nicht nur das Schreiben aller Zahlen von 1001 auf 1005 die viel einfachere Lösung? – Henry

+1

Es ist nicht notwendig, die Eingabeliste zu überprüfen, außer um den Bereich zu bestimmen (die kleinste und die größte Zahl darin). Insbesondere müssen Sie es nicht einmal speichern (die Berechnung kann während des Lesens und Verwerfens durchgeführt werden). – Thilo

+0

das ist eine andere Lösung @ Thilo ich mag es, aber Shashwat verwenden es bereits in seiner Antwort ist es spät :) –

Verwandte Themen