Время в C# засекал StopWatch'ем, в Java — System.currentTimeMillis().
Число элементов: 10000000
C#
IntArray: 38
ObjList: 1239
IntList: 161
Java
IntArray: 8
IntList: 1161
Не знаю, почему C# так тупит в банальном заполнении массива числами, но вот то что генерики в джаве подкачали - думаю, очевидно. Скорость автоупаковки в действии. Хотя шарпу удалось обогнать и при упаковке.
Примечательно так же, что компиляция C# в Release код не привела к хоть как-либо значимому ускорению, хотя я ожидал. Видимо, я заблуждаюсь на этот счёт.
Хорошего дня!