Я ищу готово простейшее (JDK стандарта) список обертку для заданного массива примитивов, которые не копировать этот массив. Скажем, у нас есть int[] arr
и желанной реализация будет как разПростейшее список обертка для массива примитивов
List<Integer> list = new AbstractList<Integer>() {
@Override
public Integer get(int index) {
return arr[index];
}
@Override
public int size() {
return arr.length;
}
};
К сожалению Arrays.asList(T...a)
не может сделать это из-за своей подписью (он будет производить List<int[]>
в данном случае). Конечно, я могу использовать вышеупомянутый код выше, но кажется, что слишком очевидно, что его еще не реализовано.
Есть ли что-либо подобное (может быть в java-8)?
UPD: Это не вне темы, потому что я ищу стандартную реализацию Java SE, а не библиотеку 3d-party!
Нет, в JDK нет такой вещи. Но вы можете использовать IntStream, если поток соответствует вашим потребностям. –
@JBNizet Как «IntStream» мог мне помочь? – Andremoniy
Одна вещь, чтобы следить за этим, заключается в том, что каждый вызов get() потребует бокса, что может отменить преимущества производительности при использовании int [] над Integer []. – ChaseMedallion