1. 程式人生 > >Java學習筆記之Collection介面

Java學習筆記之Collection介面

Collection基於JDK1.2,繼承自Iterable,Collection為集合層次結構的根介面,根據是否允許內部元素重複,分為Set和List集合。
包含方法:

  1. int size();返回集合中元素的數量,如果集合中元素個數大於Integer.MAX_VALUE,則返回Integer.MAX_VALUE。
  2. boolean isEmpty();如果集合中不包含元素,返回true。否則返回false。
  3. boolean contains(Object o);如果集合中包含指定元素,則返回true。
  4. Iterator iterator();返回集合中元素的迭代器。
  5. Object[] toArray();返回包含此集合中所有元素的陣列。
  6. 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.
    add("aaa"+i); } Log.w("列印"," "+linkedList.size()); linkedList.toArray(arrayList.toArray()); Log.w("列印"," "+linkedList.size());
    輸出結果:
    W/列印:  100
    W/列印:  100
    
  7. boolean add(E e);確保此集合包含指定的元素(list和set不同),如果此集合因呼叫此方法而更改,則返回true。
  8. boolean remove(Object o);移除此集合的指定元素,預設單個例項。
    List<String> linkedList = new
    LinkedList<>(); for(int i =0;i<100;i++){ linkedList.add("aaa"+i); } linkedList.add("aaa"+1); linkedList.add("aaa"+1); linkedList.add("aaa"+1); Log.w("列印"," "+linkedList.size()); linkedList.remove("aaa"+2); Log.w("列印"," "+linkedList.size());
    輸出結果:
    W/列印:  103
    W/列印:  102
    
  9. boolean containsAll(Collection<?> c);如果此集合包含指定集合中的所有元素,則返回true。
  10. boolean addAll(Collection<? extends E> c);將指定集合中的所有元素新增到此集合中,在set和list集合中,此方法執行的邏輯不同。
  11. boolean removeAll(Collection<?> c); 如果指定集合中的元素在此集合也存在,則刪除。呼叫返回後,此集合將不包含與指定集合相同的元素。
  12. 第十二個方法基於JDK1.8,是一個default方法
    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;
    }
    
    刪除此集合中滿足給定謂詞Predicate的所有元素。
  13. boolean retainAll(Collection<?> c); 僅保留此集合中包含在指定集合中的元素。
  14. void clear(); 移除此集合中所有元素,執行之後此集合為空。
  15. boolean equals(Object o);將指定物件與此集合進行比較以獲得相等性。
  16. int hashCode();返回集合的雜湊值。
  17. 第十七個方法是一個default方法:
    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }
    
    JDK1.8開始新增,返回以此集合為源的Stream。
  18. 第十八個方法是一個default方法:
    default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }
    
    JDK1.8開始新增,以此集合為源返回可能並行的Stream,此方法允許返回順序流。