私はの要素を["AA00001"、 "AA00005"、 "AA00005"、 "AA00003" ----- "ZZ00678"]から渡す必要があるという文字列arraylistを持っています。リストに表示されます。私はそのためのコードを書いており、必要な出力を生成している入力が少ないために必要です。しかし、私は22184個の要素を追加し、iはシーケンス内の不足要素を見つける方法は?
としてエラーを取得していArrayListの中に存在していない200個のユニークなIDを生成するいた場合にメインメソッドのコード(文字列[])を超えているが65535バイト
を制限します誰かが助けてくれますか?
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++;
}
}
}
}
}
そのコードは間違いなく64kの制限を超えていません。それは[ideone上でうまくいく](http://ideone.com/MwiiUQ)。 –
あなたのIDをテキストファイルに入れ、テキストファイルを読むことができます。 – matt
あなたが 'ids.add(" AA00001 "); ids.add( "AA00004"); ids.add( "AA00007"); ... 'あなたのメインメソッドでは、大きすぎるため制限を簡単に超えます。すべてのIDを持つ外部ファイルを持ち、それをあなたのリストに読み込む方がよいでしょう。 –
QBrute