Zwrócenie ostatnio dodanego obiektu do kolekcji

2018-12-05 13:33
0

Mam taki problem : powiedzmy, że mam listę Integerów i wyglada tak:

list = [1,2,3,4,5,6,7];
//wykonuję add
list.add(0, 1);
list.add(1, 1);

i teraz chcę zwrócić ostatnio dodany obiekt do listy, czyli w tym wypadku 1 o indexie 1. I pytanie jest następujące: czy jest jakaś klasa, która udostępnia taką metodę, czy trzeba to zrobić jakoś ręcznie (zrobic kopie i porównać starą listę z nową ?) ?

edytowany 1x, ostatnio: furious programming, 2018-12-05 13:34

Pozostało 580 znaków

2018-12-05 13:42
0

LinkedList
Kolejka


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.
A która metoda LinkedList zwraca ostatnio dodany element? W dokumentacji jest 1 albo ostatni - Mattii4211 2018-12-05 13:53
faktycznie, mój bład. to zadziała tylko jeśli nie będziesz wsadzał nic w środek listy, a tylko na koniec - danek 2018-12-05 13:54

Pozostało 580 znaków

2018-12-05 13:45
0

@danek: prędzej stos (LIFO), skoro chce odczytać ostatnio dodany element.

Mattii4211 napisał(a):

i teraz chcę zwrócić ostatnio dodany obiekt do listy, czyli w tym wypadku 1 o indexie 1.

Co znaczy „zwrócić”? Tylko odczytać, czy odczytać i wyjąć (usunąć) z kontenera?


edytowany 1x, ostatnio: furious programming, 2018-12-05 13:46
fakt, stos - danek 2018-12-05 13:46

Pozostało 580 znaków

2018-12-05 13:50
0

Tylko odczytać

Pozostało 580 znaków

2018-12-05 13:53
0

I w dalszym ciągu mieć dostęp do dowolnego elementu listy, a nie tylko do ostatnio dodanego?


Pozostało 580 znaków

2018-12-05 13:55
0

I jeszcze ważne pytanie. Chcesz mieć dwie kolejności? (dodania i właściwa kolejność listy)


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.

Pozostało 580 znaków

2018-12-05 13:58
0

Tak, tylko go odczytać i mieć dostęp, kolejność dodatnia nie ma znaczenia, obecnie mam ArrayList ale żeby wykorzystać kolejkę to muszę mieć 2 listę, która przechowuje kolejkę dla każdego obiektu (kolejka dla 1, kolejka dla 2 itp) i wydaje mi się to mało "estetyczne".

Pozostało 580 znaków

2018-12-06 06:55
0

Cześć,

jeśli dodajesz do kontenera jakieś swoje obiekty to stwórz statyczną zmienną i zmodyfikuj konstruktory. Ja bym przynajmniej tak kombinował ;) Jeśli to zła droga - ktoś mnie poprawi.
Dla zwykłego int było by to coś takiego:

struct UserInt 
{
    static int last_created_value;
    int val;
    UserInt(const int &v, const int &idx) : val(v) 
    { 
        last_created_value = idx;
    };
    UserInt(const int &v) :val(v) 
    { 
        last_created_value++;
    };
};

int UserInt::last_created_value = 0;

int main()
{
    std::vector<UserInt> list{ 1, 2, 4, 5 };
    std::cout << "last after list init: " << UserInt::last_created_value << std::endl;
    int index = 2;
    list.insert(list.begin()+index, UserInt(3, index));
    std::cout << "last after list insert: " << UserInt::last_created_value << std::endl;
    return 0;
}

Pozostało 580 znaków

2018-12-06 15:19
0

Akurat piszę w jakie ale mam mapę, która dla danego obiektu, przechowuję listę kolejno dodanych obiektów i zwracam ten ostatni zawsze (dodaję za pomocą add(), więc nowy obiekt zawsze jest na końcu)

Sorki, nie doczytałem tagu - Mc_Hammer 2018-12-06 15:27

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0