Jestem początkujący. To może być głupie pytanie.Dlaczego "big = big.add (..)" musi być użyty do sumowania BigIntegers?
Mam wiele naprawdę dużych liczb. Muszę znaleźć sumę wszystkich liczb w tablicy. Zdefiniowałem BigInteger i zainicjowałem go do zera. Teraz przejdę przez tablicę i dodam każdy element do tego BigIntegera.
Błąd kompilacji, ale wartość big
wciąż wynosiła zero, kod nie zadziałał. Sprawdziłem to i nauczyłem się, że metoda BigInteger add zwraca sumę. Zmieniłem powyższy kod.
big = big.add(b);
Teraz zadziałało dobrze.
Moje pytanie: Co właściwie się tam dzieje? Dlaczego pierwsza aktualizacja kodu nie stała się wartością big
.
Mogę porównać to BigInteger.add()
z collection.add()
Więcej wgląd jest doceniana. Dziękuję Ci.
Czy możesz dopracować koncesję na wydajność? Dziękuję Ci. – Charan
@Charan Tworzenie nowej kolekcji zawierającej niemal dokładnie takie same odniesienia jak istniejące może być kosztowne, jeśli kolekcja jest duża. Mutable collections pozwalają uzyskać nieznacznie zmodyfikowaną wersję kolekcji bez wykonywania tej pracy. –
@Charan Aby dodać element do ArrayList jednego miliona elementów może być tak proste jak przypisanie referencji i przyrost licznika. Aby skopiować i dodać, musisz skopiować wszystkie odniesienia, wszystkie miliony, aby je dodać. BTW CopyOnWriteArrayList robi to i bardzo wolno modyfikuje dużą kolekcję. –