Страница 1 из 1
Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 21:55
GOST
Добрый вечер. Подскажите пожалуйста, в каком виде лучше хранить (и передавать внутри программы) взаимосвязанные данные двух разных типов (например, String & Boolean)? Поначалу думал сделать класс обертку и просто запихнуть в тот-же ArrayList, но тогда не будет возможности сортировать их

. Поиск по просторам гугла не оправдал ожидания. Неужели придется заниматься велосипедостроением?
Re: Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 22:04
Mikhail_dev
Передавать как Parcelable объект. Либо как Serializable, но первый быстрее
Re: Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 22:12
GOST
Наверное я не совсем правильно задал вопрос, я имел ввиду массив таких (String & Boolean) данных. И, даже если использовать Parcelable или Serializable, то все-равно не вижу как это поможет с проблемами сортировки. Грубо говоря нужен List, где в каждой ячейке будет String + Boolean, с возможностью сортировки по String. Как-то так...
Re: Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 22:56
Foenix
а по твоему какие типы данных хранятся в List?
Re: Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 23:00
Mikhail_dev
Что значит "где в каждой ячейке будет String + Boolean" ??? Это два значения, и они не могут быть в одной ячейке. Они могут быть объектом, в который входит String и Boolean, но никак не как два значения в одной ячейке.
Добавляйте в List объекты, пишите свой сортировщик объектов (читать про Comparable, либо Comparator)
Re: Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 23:18
GOST
По моему в List хранятся либо Object, либо экземпляры того класса, который указан при создании ArrayList (или ему подобных) и его наследники, как-то так. Я же хотел что-то подобное на Map, но ближе к List, вот какой ужас я придумал

.
To Mikhail_dev, спасибо. Как раз наткнулся на книгу Блоха, после чего понял, что несу бред и Oracle все предусмотрело, просто нужно сделать класс-обертку с реализованным компаратором. Вы меня немного опередили

Re: Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 23:35
Mikhail_dev
По моему в List хранятся либо Object, либо экземпляры того класса, который указан при создании ArrayList (или ему подобных) и его наследники, как-то так.
В List хранится то, что вы туда положите
List<YourObjectWithTwoFields> myList = new ArrayList<YourObjectWithTwoFields>();
В классе YourObjectWithTwoFields реализуйте интерфейс Comparable
дальше используйте статический метод сортировки коллекций
Collections.sort(myList );
и всё, коллекция отсортирована по тем правилам, по которым вы зададите, реализовав интерфейс Comparable
Re: Структура данных для 2-х разных типов
Добавлено: 22 мар 2015, 23:52
GOST
Спасибо, я примерно так и думал делать.