Ich habe eine Zeichenfolge Arraylist unter, dass ich Elemente aus ["AA00001", "AA00005", "AA00003" ----- "ZZ00678" übergeben müssen, und ich muss die Sequenzelemente generieren, die nicht sind in der Liste vorhanden. Ich habe Code dafür geschrieben und für weniger Eingaben erzeugt er die erforderliche Ausgabe. Aber wenn ich das Hinzufügen 22184 Elemente und will 200 eindeutige IDs erzeugen, die in der Arraylist nicht vorhanden sind i Störung erhalten alsWie finde ich die fehlenden Elemente in einer Sequenz?
Der Code der Methode main (String []) überschreitet die 65.535 Bytes begrenzen
Kann jemand bitte helfen?
import java.util.ArrayList;
public class GenerateIds
{
private static ArrayList<String> ids = new ArrayList<>();
static int n=50; //no of Ids u want to generate
static int completed =0;
static char ID[] = new char[7];
public static void main(String[] args)
{
ids.add("AA00001");
ids.add("AA00004");
ids.add("AA00007");
generateIds(0);
for(String id : ids)
{
System.out.println(id);
}
}
private static void generateIds(int i)
{
if(n!=completed)
{
if(i<2)
{
for(char c ='A';c<'Z';c++)
{
ID[i]=c;
generateIds(i+1);
}
}
else if(i>=2 && i<7)
{
for(char c ='0';c<='9';c++)
{
ID[i]=c;
generateIds(i+1);
}
}else if(i==7)
{
String id = String.valueOf(ID);
if(!ids.contains(id))
{
ids.add(id);
completed++;
}
}
}
}
}
Dieser Code überschreitet definitiv nicht die Grenze von 64k. Es läuft gut auf ideone] (http://ideone.com/MwiiUQ). –
Sie könnten Ihre IDs in eine Textdatei schreiben und die Textdatei lesen. – matt
Wenn Sie alle 'ids.add (" AA00001 "); IDS.add ("AA00004"); ids.add ("AA00007"); ... 'in Ihrer Hauptmethode überschreitet es leicht das Limit, weil es zu groß wird. Es wäre besser, eine externe Datei mit allen IDs zu haben und diese in Ihre Liste einzulesen. –
QBrute