Különbségek a Collection.clear () és a Collection.removeAll () között
1. Áttekintés
Ebben a gyors bemutatóban kettőről tanulhatunk Gyűjtemény módszerek, amelyek úgy tűnhetnek, hogy ugyanazt csinálják, de nem: egyértelmű() és összes eltávolítása().
Először megnézzük a módszer definícióit, majd rövid példákban használjuk őket.
2. Gyűjtemény.tiszta ()
Először belemerülünk a Collection.clear () módszer. Ellenőrizzük a módszer Javadoc-ját. Eszerint a célja egyértelmű() minden egyes elem eltávolítása a listáról.
Tehát alapvetően hívás egyértelmű() bármelyik listán a lista kiürül.
3. Collection.removeAll ()
Most megnézzük a Javadocot Collection.removeAll (). Láthatjuk, hogy a módszer a Gyűjtemény érvként. És célja az, hogytávolítsa el az összes közös elemet a lista és a gyűjtemény között.
Tehát, amikor egy gyűjteményre hívja, eltávolítja az átadott argumentum összes elemét, amely szintén szerepel a gyűjteményben, amelyre hívjuk összes eltávolítása().
4. Példák
Most nézzünk meg néhány kódot, hogy lássuk ezeket a módszereket. Először létrehozunk egy teszt osztályt a névvel ClearVsRemoveAllUnitTest.
Ezt követően létrehozunk egy első tesztet a Collection.clear ().
Inicializáljuk a Egész számok néhány számmal és hívjon egyértelmű() rajta, hogy egyetlen elem se maradjon a listában:
@Test void whenClear_thenListBecomesEmpty () {Collection collection = new ArrayList (Arrays.asList (1, 2, 3, 4, 5)); gyűjtemény.tiszta (); assertTrue (gyűjtemény.isEmpty ()); }
Amint láthatjuk, a gyűjtemény utána üres egyértelmű() hívják.
Készítsünk egy második tesztet két gyűjteményből, az egyik számai 1-től 5-ig, a másik pedig 3-tól 7-ig terjednek. Ezután felhívjuk összes eltávolítása() az első gyűjteményen, a második paraméterrel.
Arra számítunk, hogy csak az 1. és 2. szám marad az első gyűjteményben (míg a második változatlan):
@Test void whenRemoveAll_thenFirstListMissElementsFromSecondList () {Collection firstCollection = new ArrayList (Arrays.asList (1, 2, 3, 4, 5)); Gyűjtemény secondCollection = új ArrayList (Arrays.asList (3, 4, 5, 6, 7)); firstCollection.removeAll (secondCollection); assertEquals (Tömbök.asList (1, 2), firstCollection); assertEquals (Arrays.asList (3, 4, 5, 6, 7), secondCollection); }
És elvárásaink teljesülnek. Csak az 1. és a 2. szám maradt az első gyűjteményben, a második pedig nem változott.
5. Következtetés
Ebben a cikkben láttuk a céljait Collection.clear () és Collection.removeAll ().
Annak ellenére, hogy először azt gondolhatnánk, nem ugyanazt csinálják. egyértelmű() töröl minden elemet a gyűjteményből és összes eltávolítása() csak az elemeket távolítja el a másiktól Gyűjtemény.
És mint mindig, a kód megtalálható a GitHubon.