Структура данных для 2-х разных типов

Закрыто
Аватара пользователя
GOST
Сообщения: 16
Зарегистрирован: 25 июл 2014, 12:37
Откуда: UA

Структура данных для 2-х разных типов

Сообщение GOST » 22 мар 2015, 21:55

Добрый вечер. Подскажите пожалуйста, в каком виде лучше хранить (и передавать внутри программы) взаимосвязанные данные двух разных типов (например, String & Boolean)? Поначалу думал сделать класс обертку и просто запихнуть в тот-же ArrayList, но тогда не будет возможности сортировать их :cry:. Поиск по просторам гугла не оправдал ожидания. Неужели придется заниматься велосипедостроением?

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Структура данных для 2-х разных типов

Сообщение Mikhail_dev » 22 мар 2015, 22:04

Передавать как Parcelable объект. Либо как Serializable, но первый быстрее

Аватара пользователя
GOST
Сообщения: 16
Зарегистрирован: 25 июл 2014, 12:37
Откуда: UA

Re: Структура данных для 2-х разных типов

Сообщение GOST » 22 мар 2015, 22:12

Наверное я не совсем правильно задал вопрос, я имел ввиду массив таких (String & Boolean) данных. И, даже если использовать Parcelable или Serializable, то все-равно не вижу как это поможет с проблемами сортировки. Грубо говоря нужен List, где в каждой ячейке будет String + Boolean, с возможностью сортировки по String. Как-то так...

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Структура данных для 2-х разных типов

Сообщение Foenix » 22 мар 2015, 22:56

а по твоему какие типы данных хранятся в List?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Структура данных для 2-х разных типов

Сообщение Mikhail_dev » 22 мар 2015, 23:00

Что значит "где в каждой ячейке будет String + Boolean" ??? Это два значения, и они не могут быть в одной ячейке. Они могут быть объектом, в который входит String и Boolean, но никак не как два значения в одной ячейке.
Добавляйте в List объекты, пишите свой сортировщик объектов (читать про Comparable, либо Comparator)

Аватара пользователя
GOST
Сообщения: 16
Зарегистрирован: 25 июл 2014, 12:37
Откуда: UA

Re: Структура данных для 2-х разных типов

Сообщение GOST » 22 мар 2015, 23:18

По моему в List хранятся либо Object, либо экземпляры того класса, который указан при создании ArrayList (или ему подобных) и его наследники, как-то так. Я же хотел что-то подобное на Map, но ближе к List, вот какой ужас я придумал :o .
To Mikhail_dev, спасибо. Как раз наткнулся на книгу Блоха, после чего понял, что несу бред и Oracle все предусмотрело, просто нужно сделать класс-обертку с реализованным компаратором. Вы меня немного опередили :)

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Структура данных для 2-х разных типов

Сообщение Mikhail_dev » 22 мар 2015, 23:35

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

Аватара пользователя
GOST
Сообщения: 16
Зарегистрирован: 25 июл 2014, 12:37
Откуда: UA

Re: Структура данных для 2-х разных типов

Сообщение GOST » 22 мар 2015, 23:52

Спасибо, я примерно так и думал делать.

Закрыто