Java學習筆記之Collection介面
阿新 • • 發佈:2019-01-03
Collection基於JDK1.2,繼承自Iterable,Collection為集合層次結構的根介面,根據是否允許內部元素重複,分為Set和List集合。
包含方法:
- int size();返回集合中元素的數量,如果集合中元素個數大於Integer.MAX_VALUE,則返回Integer.MAX_VALUE。
- boolean isEmpty();如果集合中不包含元素,返回true。否則返回false。
- boolean contains(Object o);如果集合中包含指定元素,則返回true。
- Iterator iterator();返回集合中元素的迭代器。
- Object[] toArray();返回包含此集合中所有元素的陣列。
- T[] toArray(T[] a);返回一個包含此集合中所有元素的陣列。
輸出結果:List<String> arrayList = new ArrayList<>(); arrayList.add("aaa"+11); arrayList.add("aaa"+22); arrayList.add("aaa"+33); List<String> linkedList = new LinkedList<>(); for(int i =0;i<100;i++){ linkedList.
W/列印: 100 W/列印: 100
- boolean add(E e);確保此集合包含指定的元素(list和set不同),如果此集合因呼叫此方法而更改,則返回true。
- boolean remove(Object o);移除此集合的指定元素,預設單個例項。
輸出結果:List<String> linkedList = new
W/列印: 103 W/列印: 102
- boolean containsAll(Collection<?> c);如果此集合包含指定集合中的所有元素,則返回true。
- boolean addAll(Collection<? extends E> c);將指定集合中的所有元素新增到此集合中,在set和list集合中,此方法執行的邏輯不同。
- boolean removeAll(Collection<?> c); 如果指定集合中的元素在此集合也存在,則刪除。呼叫返回後,此集合將不包含與指定集合相同的元素。
- 第十二個方法基於JDK1.8,是一個default方法:
刪除此集合中滿足給定謂詞Predicate的所有元素。default boolean removeIf(Predicate<? super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator<E> each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; }
- boolean retainAll(Collection<?> c); 僅保留此集合中包含在指定集合中的元素。
- void clear(); 移除此集合中所有元素,執行之後此集合為空。
- boolean equals(Object o);將指定物件與此集合進行比較以獲得相等性。
- int hashCode();返回集合的雜湊值。
- 第十七個方法是一個default方法:
JDK1.8開始新增,返回以此集合為源的Stream。default Stream<E> stream() { return StreamSupport.stream(spliterator(), false); }
- 第十八個方法是一個default方法:
JDK1.8開始新增,以此集合為源返回可能並行的Stream,此方法允許返回順序流。default Stream<E> parallelStream() { return StreamSupport.stream(spliterator(), true); }