Самый общий - Object. Общее уже некуда. Настоящий вопрос какой? Как написать единую функцию для работы с любыми множествами ? Никак. Только костыли, когда вы проверяете что пришло на вход, Collection или Array и выполняете соответсвующий код.
Можете перегрузить метод, например так
private int someFunction(Collection<?> collection) {
int result = 0;
/* Do some work*/
return result;
}
private int someFunction(int[] array) {
return someFunction(Arrays.asList(array));
}