Moja pierwsza myśl to "tak, jest kara za wykonanie, ponieważ Insert
musi przenieść wszystkie pozycje z listy na jedno miejsce, aby zrobić miejsce na nowy przedmiot" - ale potem przeczytałem to pytanie ostrożniej. Więc:
W ogólnym, Insert
trwa (możliwie dużo) więcej czasu, ponieważ musi przenieść wszystkie elementy już na liście, aby zrobić miejsce dla nowego elementu, więc jest to O (n) operacji na długość listy (jeśli lista zostanie wypełniona do pojemności, będzie również wymagać zmiany rozmiaru, ale to wciąż operacja O (n)). Z drugiej strony Add
po prostu dołącza nowy element bez potrzeby przenoszenia czegokolwiek, dzięki czemu jest szybszy - operacja O (1) (chyba że lista wymaga zmiany rozmiaru, jak wyżej).
W tym konkretnym przykładzie, gdzie lista jest pusta na początku, nie będzie różnicy w wydajności.
Oczywiście wszystko to jest rodzajem dyskusji, ponieważ powinieneś wybrać metody w oparciu o swoje intencje 10, chyba że masz udokumentowany problem z wydajnością.
Eric Lippert mówi w http://ericlippert.com/2012/12/17/performance-rant/ ** Jeśli masz dwa konie i chcesz wiedzieć, który z nich jest szybszy, niż wyścig swoich koni. ** –
@Prash 'List' to automatyczna zmiana rozmiaru opakowania. To nie jest połączona lista. –
TheEvilPenguin
@Soner Gönül - A jeśli ktoś wygrywa, czy to ważne, dlaczego? Myślę, że to jest ... i chcę wiedzieć dlaczego .. –