У меня есть строчный архаист под тем, что мне нужно передать элементов из ["AA00001", "AA00005", "AA00003" ----- "ZZ00678"], и мне нужно сгенерировать элементы последовательности, которые не являются присутствующих в списке. Я написал для этого код, и для меньших входных данных он генерирует требуемый результат. Но когда я добавляю 22184 элементов и хотите, чтобы генерировать 200 уникальных идентификаторов, которые не присутствуют в ArrayList я получаю сообщение об ошибке, какКак найти недостающие элементы в последовательности?
Код метода основной (String []) превышает в 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. Он отлично работает на идеоне (http://ideone.com/MwiiUQ). –
Вы можете поместить свой идентификатор в текстовый файл и прочитать текстовый файл. – matt
Если вы делаете все 'ids.add (« AA00001 »); ids.add ("AA00004"); ids.add ("AA00007"); ... 'в вашем основном методе, он легко превышает предел, потому что он становится слишком большим. Было бы лучше иметь внешний файл со всеми идентификаторами и прочитать его в вашем списке. –
QBrute