Вопрос задает два отдельных вопроса: преобразование int[]
в Integer[]
и создание HashSet<Integer>
из int[]
. Оба легко сделать с потоками Java 8:
int[] array = ...
Integer[] boxedArray = IntStream.of(array).boxed().toArray(Integer[]::new);
Set<Integer> set = IntStream.of(array).boxed().collect(Collectors.toSet());
//or if you need a HashSet specifically
HashSet<Integer> hashset = IntStream.of(array).boxed()
.collect(Collectors.toCollection(HashSet::new));
Во-первых, я не обязательно согласен с тем, что TreeView - отстой. TreeView - это довольно чистый, стандартный и понятный способ для людей работать с иерархией элементов.
При этом существует множество других альтернатив. У вас может быть несколько списков с возможностью перехода вверх / вниз по дереву. У вас может быть что-то вроде просмотра файлов в Vista, где у вас есть адресная область со списком под ней, и вы можете детализировать. Есть много других вариантов.
TreeView в конечном итоге используется во многих случаях, потому что это один из наиболее кратких способов отображения иерархии, и очевидно, что вы смотрите на иерархические данные.
Я считаю, что хорошо работает комбинация более продвинутых элементов управления и древовидных представлений, объединенных вместе. Например, возьмите настройку панели проводника Outlooks. Думаю, это хорошо работает.
Взгляните на Айва , чтобы найти вдохновение для UI (они называют это UX). Искать иерархический.
Примеры включают такие шаблоны, как каскадные списки и TreeMap.
Из них вы можете нажать кнопку «связанные», чтобы увидеть еще больше идей.
ОБНОВЛЕНИЕ: 21 сентября 2014 г., печальные новости от Infragistics: «Айва Pro - мы официально снимаем этот продукт». Подробнее в их блоге в разделе «Уведомления об изменении статуса продукта». Надеюсь, они какое-то время сохранят его в качестве справочного материала!