Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использование ArrayList, как правильно использовать 
:(
    Опции темы
Rauko
Дата 23.8.2015, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



учусь пользоваться коллекциями, с трудом разобралась, как пользоваться TreeSet... Однако после реализации поняла, что сам TreeSet в моем случае не до конца подходит: если данные совпадают - он не выводит строку на экран
Код

// TreeSet
    Set<Employee> sortedEmp = new TreeSet<>(new Comparator <Employee>() {
        public int compare(Employee e1, Employee e2) {
            if (e1.getINN() > e2.getINN()) 
                return 1;
            if (e1.getINN() < e2.getINN()) 
                return -1;
            return 0;
        }
    });
    for(int i = 0; i < e.length; i++)
        sortedEmp.addAll(Arrays.asList(e[i]));


есть ли варианты использования кроме ArrayList? как его правильно использовать с учетом необходимости сортировки?
PM MAIL   Вверх
AntonSaburov
Дата 24.8.2015, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



На куске кода вообще никакого вывода нет - мы не экстрасенсы. Также в Set нельзя хранить два одинаковых объекта.
PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 24.8.2015, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



И вопрос какой-то странный - с ArrayList работаем или с TreeSet ?
PM MAIL WWW ICQ   Вверх
Rauko
Дата 24.8.2015, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



вывод работает, вот в чем дело ))) но если уж так интересно, вот код вывода для 

Код

    public void simpleOutPut(SortedSet<Employee> sortedEmp){
        for(Employee currentEmpl : sortedEmp){
            int lng = transformData(currentEmpl.getINN()).length();
            System.out.print("║ "); space(lng,2);
            System.out.print(currentEmpl.getINN() + " ║ ");
            lng = currentEmpl.getFirstName().length();
            System.out.print(currentEmpl.getFirstName());
            space(lng,13);
            System.out.print(" │ " + currentEmpl.getSecondName());
            lng = currentEmpl.getSecondName().length();
            space(lng,13);
            System.out.print(" ║ ");
            System.out.println(currentEmpl.getPosition() + " ║");
        }
    }


проблема заключается в том, что я не могу понять, как в ArraysList запрячь мой массив Employee.
то, что строки с одинаковыми значениями нельзя хранить в TreeSet и стало причиной поиска других вариантов решения задачи...
была еще мысль спросить про HashSet, вроде он тоже приемлем для решения задачи
PM MAIL   Вверх
AntonSaburov
Дата 24.8.2015, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Мы же с Вами рассматривали вариант с Comparator в другой ветке.
PM MAIL WWW ICQ   Вверх
CPlusPlusFAN
Дата 24.8.2015, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 1.11.2005
Где: Воронеж

Репутация: нет
Всего: нет



Rauko, ArrayList подходит идеально.
PM MAIL ICQ Jabber   Вверх
Rauko
Дата 24.8.2015, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



Цитата(AntonSaburov @ 24.8.2015,  17:51)
Мы же с Вами рассматривали вариант с Comparator в другой ветке.

это та же задача, но уже с использованием коллекций...

60 лабораторных слишком быстро сделали, преподаватель выкручивается как может - мы уже 4 раза эту задачу под разные условия переделывали...

по поводу TreeSet сказал, что да, так можно(в случае с INN, где генерируется уникальное число... обычно), но для наглядности лучше сделать все 3 варианта по-разному
PM MAIL   Вверх
CPlusPlusFAN
Дата 27.8.2015, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 1.11.2005
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(Rauko @  24.8.2015,  15:29 Найти цитируемый пост)
проблема заключается в том, что я не могу понять, как в ArraysList запрячь мой массив Employee.

Код

new ArrayList<>(Arrays.<Employee>asList(e))

Set будет работать только в случае, если уберете из Employee методы equals и hashCode и то, если не кидать в него одинаковые объекты. Таков контракт сетов.
Листы, например, подходят любые, очереди и т.д.

Это сообщение отредактировал(а) CPlusPlusFAN - 27.8.2015, 02:49
PM MAIL ICQ Jabber   Вверх
Samotnik
Дата 31.8.2015, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Цитата(Rauko @  24.8.2015,  15:29 Найти цитируемый пост)
проблема заключается в том, что я не могу понять, как в ArraysList запрячь мой массив Employee.

В ArrayList запрягается всё что угодно, Британские ученые доказали, что ArrayList используется в 78% случаях, когда программисты работают с коллекциями. Его все любят и лелеют.

Цитата(Rauko @  24.8.2015,  21:32 Найти цитируемый пост)
по поводу TreeSet сказал, что да, так можно(в случае с INN, где генерируется уникальное число... обычно), но для наглядности лучше сделать все 3 варианта по-разному 

Имплементация интерфейса Set существует в 97 классах Java 1.8. Тебе какая нужна?
PM MAIL   Вверх
Rauko
Дата 2.9.2015, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



Цитата
В ArrayList запрягается всё что угодно, Британские ученые доказали, что ArrayList используется в 78% случаях, когда программисты работают с коллекциями. Его все любят и лелеют.

я не могу понять сам синтаксис, особенно, если пытаться создать коллекцию внутри класса и в последствии ее вызывать - вот пример из другой задачи:
написать программу, которая будет содержать в себе информацию о сети кинотеатров(~3 элемента). каждый кинотеатр имеет 
- название
- адрес
- контактную информацию
- несколько залов
каждый зал имеет 
- название
- расписание фильмов

по запросу выводить:
- всю информацию по пунктам(названия, адреса, контактная информация)
- информацию о каждом кинотеатре(контактная информация, список залов на выбор для просмотра)

Код

public class Cinema {
    private String cinemaName;    // название кинотеатра
    private String cinemaAddress;    // адрес кинотеатра
    private String cinemaContact;    // контакты
    private int roomNum;        // число комнат
    private int workStart;        // начало работы
    ...

Код

public class CinemaRoom extends Cinema {
    private String name;                                    // название зала
    private ArrayList<String> filmList = new ArrayList<String>();    // список фильмов на зал
    ...


(этот вопрос немного не по теме, но возможно к нему приведется)создала массив из класса Cinema на 3 элемента, как в каждом из них запилить массив из комнат CinemaRoom(по 2-3 штучки)? через что это выполняется или как поправить код для реализации?

можно ли реализовать как то первый класс через коллекции? как это будет выглядеть?
какой командой выполняется заливка в ArrayList<String> filmList из другого класса? геттеры-сеттеры реализованы через стандартный эклипсовский билдер

Цитата
Имплементация интерфейса Set существует в 97 классах Java 1.8. Тебе какая нужна?

из сетов, вероятно, лучше всего подойдет HashSet, но не пойму, как правильно в нем синтаксис выглядит и как прикрутить по примеру TreeSet сортировку(или иными методами)

в ArrayList так же не могу понять, как вкрутить в него сортировку
PM MAIL   Вверх
CPlusPlusFAN
Дата 2.9.2015, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 1.11.2005
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(Rauko @  2.9.2015,  13:47 Найти цитируемый пост)
я не могу понять сам синтаксис, особенно, если пытаться создать коллекцию внутри класса и в последствии ее вызывать - вот пример из другой задачи:
написать программу, которая будет содержать в себе информацию о сети кинотеатров(~3 элемента)

Не очень понял. Ну вроде вот:
Код

for (Cinema cinema : cinemaList) {
    System.out.println(cinema);
}


Цитата(Rauko @  2.9.2015,  13:47 Найти цитируемый пост)
создала массив из класса Cinema на 3 элемента, как в каждом из них запилить массив из комнат CinemaRoom(по 2-3 штучки)? через что это выполняется или как поправить код для реализации?

Типа того:
Код

for (Cinema cinema : cinemaArray) {
    cinema.setRooms(new Room[3]);
}


Цитата(Rauko @  2.9.2015,  13:47 Найти цитируемый пост)
можно ли реализовать как то первый класс через коллекции? как это будет выглядеть?

Что значит "реализовать класс через коллекции"?

Цитата(Rauko @  2.9.2015,  13:47 Найти цитируемый пост)
какой командой выполняется заливка в ArrayList<String> filmList из другого класса? геттеры-сеттеры реализованы через стандартный эклипсовский билдер

Код

obj1.setFilmList(new ArrayList<String>(obj2.getFilmList()));


Цитата(Rauko @  2.9.2015,  13:47 Найти цитируемый пост)
из сетов, вероятно, лучше всего подойдет HashSet, но не пойму, как правильно в нем синтаксис выглядит и как прикрутить по примеру TreeSet сортировку(или иными методами)

Никак. HashSet несортируем. И зачем вообще нужен сет, я так до конца и не понял.

Цитата(Rauko @  2.9.2015,  13:47 Найти цитируемый пост)
в ArrayList так же не могу понять, как вкрутить в него сортировку

Код

Collections.sort(yourArrayList); // элементы Comparable
Collections.sort(yourArrayList, yourComparator); // нужен свой порядок сортировки

PM MAIL ICQ Jabber   Вверх
Rauko
Дата 2.9.2015, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



Цитата
Не очень понял.

в идеале, что бы как то на такое отзывалось: (описанное ниже взято от фанаря)
Код

Cinema[] theatre = new Cinema[3];
theatre[0].setRooms(2);
theatre[1].setRooms(3);
theatre[2].setRooms(2);
for(int i = 0; i < theatre.length; i++){
    for(int j = 0; j < theatre[i].getRooms(); j++){
        theatre[i].createRooms(getRooms());
}

Код

CinemaRoom [] rooms;
...
public void createRooms(int getRooms()){
    rooms[] = new CinemaRoom[getRooms()]; //содержит коллекцию с фильмами и название комнаты
}

имхо нужна организация доступа через theatre[...]. знаю, что такое как то реализовывается, но какими путями - без понятия... два дня "эксперементирую", но не работает

Цитата
Что значит "реализовать класс через коллекции"?

можно ли вышеупомянутый theatre засунуть в коллекцию и при этом сохранить все его содержимое в том порядке, в котором оно и так там лежит? будет ли в этом смысл и делается ли так на практике?

Цитата
И зачем вообще нужен сет, я так до конца и не понял.

это в другой задаче осталось... выполнить 3 сортировки списка на 10 строк по разным ключам разного типа (String, double, int). Реализовала через TreeSet, но после сдачи решила еще немного подкорректировать и сделать все сортировки по-разному. На потоке все делали через ArrayList, вот теперь думаю, какой делать третью сортировку, раз хэш несортируем.
PM MAIL   Вверх
CPlusPlusFAN
Дата 2.9.2015, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 1.11.2005
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(Rauko @  2.9.2015,  18:51 Найти цитируемый пост)
в идеале, что бы как то на такое отзывалось: (описанное ниже взято от фанаря)

Просто опишите метод, создающий нужное число инстансов комнат по их количеству:
Код

Cinema[] theater = new Cinema[3];
theater[0] = new Cinema();
theater[0].createRooms(2);
theater[1] = new Cinema();
theater[1].createRooms(3);
theater[2] = new Cinema();
theater[2].createRooms(2);

...

public class Cinema {
    private List<Room> rooms = new ArrayList<>();

    public void createRooms(int count) {
        rooms.clear();
        for (int i = 0; i < count; ++i) {
            Room room = new Room(); // новая комната
            rooms.add(room);
        }
    }
}

И я не понимаю стремление хранить все в массивах. ArrayList достаточно хорош и лишен некоторых недостатков массива. По мне так сценариев, когда нужен именно массив, можно пересчитать по пальцам.

Цитата(Rauko @  2.9.2015,  18:51 Найти цитируемый пост)
имхо нужна организация доступа через theatre[...]. знаю, что такое как то реализовывается, но какими путями - без понятия... два дня "эксперементирую", но не работает

Так доступ по индексу, не?

Цитата(Rauko @  2.9.2015,  18:51 Найти цитируемый пост)
можно ли вышеупомянутый theatre засунуть в коллекцию и при этом сохранить все его содержимое в том порядке, в котором оно и так там лежит? будет ли в этом смысл и делается ли так на практике?

Конечно, ArrayList в помощь.

Цитата(Rauko @  2.9.2015,  18:51 Найти цитируемый пост)
это в другой задаче осталось... выполнить 3 сортировки списка на 10 строк по разным ключам разного типа (String, double, int). Реализовала через TreeSet, но после сдачи решила еще немного подкорректировать и сделать все сортировки по-разному. На потоке все делали через ArrayList, вот теперь думаю, какой делать третью сортировку, раз хэш несортируем. 

Если так хочется потестить разные коллекции: LinkedList, ArrayDeque. Если хочется экзотики, можно попробовать CopyOnWriteArrayList. Все они подходят под задачу.
PM MAIL ICQ Jabber   Вверх
Rauko
Дата 2.9.2015, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



Цитата
И я не понимаю стремление хранить все в массивах. ArrayList достаточно хорош и лишен некоторых недостатков массива. По мне так сценариев, когда нужен именно массив, можно пересчитать по пальцам.

просто я еще маленький крабокодер, только выползший из массивов и еще не до конца разобравшийся с коллекциями...

к слову, есть еще такой вопрос... возможно ли загружать в коллекцию(в тот же ArrayList) данные строками? например
"1801" "вася" "пупкин" "4000" "главбух"
"1999" "коля" "жопорук" "7000" "повар"
как будет это выглядеть?(интересует сам загруз в коллекцию и выгрузка для использования)



благодарю, приступаю к обкатке уже полученных данных... надеюсь пройдет гладко, если что - вернусь с вопросами

Это сообщение отредактировал(а) Rauko - 2.9.2015, 21:46
PM MAIL   Вверх
Samotnik
Дата 2.9.2015, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Rauko, чувствую, что вопрос какой-то очень простой, но ты спрашиваешь так, что ничего не понятно.
Цитата(Rauko @  2.9.2015,  21:38 Найти цитируемый пост)
к слову, есть еще такой вопрос... возможно ли загружать в коллекцию(в тот же ArrayList) данные строками? например
"1801" "вася" "пупкин" "4000" "главбух"
"1999" "коля" "жопорук" "7000" "повар"

так?
Код

import java.util.*;

public class Main {
    public static void main(String[] args) {

        //создаем главный список с кол-вом элементов = 2
        List<List<String>> mainList = new ArrayList<>(2);

        //создаем внутренний список, в котором будет 4 элемента
        List<String> stringList = new ArrayList<>(4);

        //заполняем
        stringList.add("1801");
        stringList.add("вася");
        stringList.add("пупкин");
        stringList.add("4000");
        stringList.add("главбух");

        //добавляем в главный
        mainList.add(stringList);

        //пересоздаем объект, либо можно создать второй список
        stringList = new ArrayList<>(4);

        //заполняем второй список
        stringList.add("1999");
        stringList.add("коля");
        stringList.add("рукастый");
        stringList.add("7000");
        stringList.add("повар");

        //добавляем второй список в главный
        mainList.add(stringList);

        //проверка, что всё по честному
        for (List<String> printList : mainList) {
            for (String str : printList) {
                System.out.print(str + " ");
            }
            System.out.println("");
        }
    }
}


Это сообщение отредактировал(а) Samotnik - 2.9.2015, 23:46
PM MAIL   Вверх
Rauko
Дата 2.9.2015, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



можно ли будет выцепить из получившейся коллекции какой то определенный элемент? можно ли будет в последствии работать с коллекцией как с массивом?

если раньше, загнав в массив свои элементы я точно знала, что в столбце i находятся одни данные, а в столбце j - другие, и для всех столбцов(созданных по такой кальке) это было одинаково справедливо и по этому принципу можно было легко реализовать программу, то можно ли все это повторить для коллекций?
PM MAIL   Вверх
Samotnik
Дата 2.9.2015, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Цитата(Rauko @  2.9.2015,  22:55 Найти цитируемый пост)
можно ли будет выцепить из получившейся коллекции какой то определенный элемент? 

Можно:
Код

//создаем внутренний список, в котором будет 4 элемента
List<String> stringList = new ArrayList<>(4);

//заполняем
stringList.add("1801");
stringList.add("вася");
stringList.add("пупкин");
stringList.add("4000");
stringList.add("главбух");

//Достаем, к примеру 3-й
stringList.get(2); //с нуля начинается, да?

Цитата(Rauko @  2.9.2015,  22:55 Найти цитируемый пост)
можно ли будет в последствии работать с коллекцией как с массивом?

Можно, но зачем? Коллекции, по сути и были введены, что бы отказаться от массивов. 
Код

//создаем внутренний список, в котором будет 4 элемента
List<String> stringList = new ArrayList<>(4);

//заполняем
stringList.add("1801");
stringList.add("вася");
stringList.add("пупкин");
stringList.add("4000");
stringList.add("главбух");

//перегоняем коллекцию в массив
String[] stockArr = new String[stringList.size()];
stockArr = stringList.toArray(stockArr);


Цитата(Rauko @  2.9.2015,  22:55 Найти цитируемый пост)
если раньше, загнав в массив свои элементы я точно знала, что в столбце i находятся одни данные, а в столбце j - другие, и для всех столбцов(созданных по такой кальке) это было одинаково справедливо и по этому принципу можно было легко реализовать программу, то можно ли все это повторить для коллекций? 

Конечно можно - коллекции очень умные, гибкие и продуманные решения в Java для работы с данными. Их около сотни на сегодняшний день и у каждой есть свои особенности. В твоем случае подойдет ArrayList он содержит элементы в том порядке, в котором их добавляли, другие реализации могут как угодно сортировать входящие данные, поэтому тут нужно быть внимательным, точнее, хорошо знать API с чем работаешь. 

Это сообщение отредактировал(а) Samotnik - 2.9.2015, 23:47
PM MAIL   Вверх
CPlusPlusFAN
Дата 3.9.2015, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 1.11.2005
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(Rauko @  2.9.2015,  21:38 Найти цитируемый пост)
к слову, есть еще такой вопрос... возможно ли загружать в коллекцию(в тот же ArrayList) данные строками? например
"1801" "вася" "пупкин" "4000" "главбух"
"1999" "коля" "жопорук" "7000" "повар"
как будет это выглядеть?(интересует сам загруз в коллекцию и выгрузка для использования)

Дык конечно можно выстрелить себе в ногу. Почему бы и нет? С точки зрения логики все строки равнозначны, поэтому и имеет смысл их хранить в списке. Однако каждый столбец имеет свой собственный смысл. Тогда уже список хэш мапов нужен, чтобы ключ ассоциировался с конкретным элементом записи.
Вот добавится в середину или удалится какая-то колонка, если бы использовались инстансы класса, тогда сразу же бы была ошибка компиляции и вы бы это смогли корректно исправить. А в списке списков забыли везде обновить индексы - и у вас уже число как фамилия обрабатывается, например. 

Это сообщение отредактировал(а) CPlusPlusFAN - 3.9.2015, 01:23
PM MAIL ICQ Jabber   Вверх
Rauko
Дата 3.9.2015, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



Цитата(Samotnik @  2.9.2015,  23:45 Найти цитируемый пост)
Можно:

я упорно не могу понять, как именно осуществляется запрягание в коллекцию... вернее не могу понять, как коллекция распознает следующую конструкцию:
Код

String[][] nnn = new String[4][];
    nnn[0] = new String[5];
    nnn[0] = {"fd","gs","tw","","14r"};
    nnn[1] = new String[5];
    nnn[1] = {"fd","qws","12w","","14r"};


упорно не доходит, где та разница между nnn[0] и nnn[1]
PM MAIL   Вверх
Samotnik
Дата 3.9.2015, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Rauko, я ведь уже писал как можно архитектуру двумерного массива перенести в коллекцию. Но теперь меня инетерсует вопрос, зачем это всё  делать?
PM MAIL   Вверх
Rauko
Дата 3.9.2015, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



обучение пользованию коллекциями, пока ничего больше

пока учила массивы, поняла принцип их пользования только когда усложнила их до трехмерных, тогда же примерно начала ими нормально пользоваться, сейчас с диким скрипом начинаю понимать коллекции... хотя пока об этом наверно еще рано говорить smile  smile  smile 
PM MAIL   Вверх
Samotnik
Дата 3.9.2015, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



так в чем конкретно вопрос?  
PM MAIL   Вверх
Rauko
Дата 3.9.2015, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 22.6.2009

Репутация: нет
Всего: нет



конкретно вопрос - я запрягаю определенное количество данных следующей конструкцией:

Код

List<String> stringList = new ArrayList<>(4);

stringList.add("...");
....
stringList = new ArrayList<>(4);
stringList.add("...");
....
stringList = new ArrayList<>(4);
stringList.add("...");
....
stringList = new ArrayList<>(4);
stringList.add("...");
....


как определить, с какой "строки" коллекции данные?
PM MAIL   Вверх
Samotnik
Дата 4.9.2015, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Цитата(Rauko @  3.9.2015,  22:17 Найти цитируемый пост)
как определить, с какой "строки" коллекции данные? 

а если перефразировать, я не понял вопрос? Коллекция - хранилище данных. Что значит "с какой строки коллекции данные"?
PM MAIL   Вверх
CPlusPlusFAN
Дата 4.9.2015, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 1.11.2005
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(Samotnik @  4.9.2015,  00:27 Найти цитируемый пост)
а если перефразировать, я не понял вопрос? Коллекция - хранилище данных. Что значит "с какой строки коллекции данные"? 

Я кажется понял. Т.е. кидаем все строки в лист и запрашиваем элемент и нужно узнать, в какой из строк запрашиваемый элемент был взят:
"1801" "вася" "пупкин" "4000" "главбух"
"1999" "коля" "жопорук" "7000" "повар"

Если я правильно понял.
Ответ: если число столбцов известно - columnsCount, то  index/columnsCount. Но это бред все сливать в одну коллекцию.
Можно так:
Код

List<List<String>> records = new ArrayList<>();
records.add(new ArrayList<>(5));
records.get(0).add("...");
records.get(0).add("...");
...

Еще лучше так:
Код

List<Map<String, String>> records = new ArrayList<>();
records.add(new HashMap<>(5));
records.get(0).put("field1", "...");
records.get(0).put("field2", "...");
...

А правильно вот так (если структура столбцов известна заранее):
Код

class Record {
private String field1;
private String field2;
...
// getters, setters
}

List<Record> records = new ArrayList<>();
records.add(new Record());
records.add(new Record());
...


Это сообщение отредактировал(а) CPlusPlusFAN - 4.9.2015, 16:16
PM MAIL ICQ Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1449 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.