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.