2016-01-11 3 views
1

Я ищу готово простейшее (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!

+1

Нет, в JDK нет такой вещи. Но вы можете использовать IntStream, если поток соответствует вашим потребностям. –

+0

@JBNizet Как «IntStream» мог мне помочь? – Andremoniy

+1

Одна вещь, чтобы следить за этим, заключается в том, что каждый вызов get() потребует бокса, что может отменить преимущества производительности при использовании int [] над Integer []. – ChaseMedallion

ответ

1

Нет, в JDK нет такой вещи. Вам нужно будет найти библиотеку, которая имеет эту функцию (если таковая существует) или реализовать ее самостоятельно.

+0

Хорошо, спасибо, это исчерпывающий ответ на мой вопрос. – Andremoniy

Смежные вопросы