У меня есть входной массив [3, 5, 12, 8], и я хочу, чтобы выходной массив (вход не должен быть affeccted) идентичен входу, но с элементом 7, вставленным между 5 и 12, поэтому при индексе 2 входного массива.Как написать общий метод для вставки элемента в массив?
Вот что у меня есть. Я закомментировать код, который не компилируется событие, и добавил пару вопросов, которые возникли при попытке так или иначе:
public static <O>ArrayList<O> addToSet(O[] in,O add,int newIndex){
// O obj = (O) new Object(); //this doesnt work
// ParameterizedType obj = (ParameterizedType) getClass().getGenericSuperClass(); // this is not even recognized
ArrayList<O> out = multipleOfSameSet(obj, in.length);
if (newIndex > in.length){
out = new ArrayList<>(newIndex+1); // also noticed that initializing an ArrayList
//like this throws an IndexOutOfBoundsException when i try to run out.get(),
// could someone explain why??
out.set(newIndex, add);
}
int j = 0;
int i = 0;
while(j<in.length+1){
if (j==newIndex){
out.set(j, add);
} else if(i<in.length){
out.set(j, in[i]);
i++;
}
j++;
}
return out;
}
Тип компонента массива может быть String, Integer или даже JPanel.
Вы не можете этого сделать. – SLaks
@SLaks ничего не может сделать? инициализировать obj внутри моего метода? – kbluue
Что это должно было сделать? – Raffaele