當前位置:網站首頁>Collection集合的學習

Collection集合的學習

2022-01-27 17:15:18 [email protected]

一、Collection的學習

在這裏插入圖片描述

1、共性的方法

public boolean add()
public void clear() :清空集合的元素,集合對象還在
public boolean remove()
public boolean contains() 是否包含某個元素
public boolean isEmpty()
public int size()
public Object[] toArray()

2、Iterator迭代器

迭代器也可以用增强for循環來實現

 Iterator<String> iterator = collection.iterator();
 while (iterator.hasNext()){
    
      System.out.println(iterator.next());
 }
for(String a:collection){
    
 	 System.out.println(a);
}

3、linkedList

boolean add(E e)
將指定元素添加到此列錶的結尾。
void add(int index, E element)
在此列錶中指定的比特置插入指定的元素。
boolean addAll(Collection<? extends E> c)
添加指定 collection 中的所有元素到此列錶的結尾,順序是指定 collection 的迭代器返回這些元素的順序。
boolean addAll(int index, Collection<? extends E> c)
將指定 collection 中的所有元素從指定比特置開始插入此列錶。
void addFirst(E e)
將指定元素插入此列錶的開頭。
void addLast(E e)
將指定元素添加到此列錶的結尾。
void clear()
從此列錶中移除所有元素。
boolean contains(Object o)
如果此列錶包含指定元素,則返回 true。

4、HashSet

HashSet存儲的是無序集合,且不重複,重複的概念是hashcode的值相等且equase比較也相等
,String重寫了hashcode和equals方法。自定義的類也需要重寫hashcode和equals方法。

5、LinkedHashSet

此實現與 HashSet 的不同之外在於,後者維護著一個運行於所有條目的雙重鏈接列錶。此鏈接列錶定義了迭代順序,即按照將元素插入到 set 中的順序(插入順序)進行迭代。注意,插入順序不 受在 set 中重新插入的 元素的影響。

二、Collections集合工具類

static boolean addAll(Collection<? super T> c, T… elements)
將所有指定元素添加到指定 collection 中。

 List<String> stringList = new ArrayList<>();
 Collections.addAll(stringList,"b","c","d","e");

static void shuffle(List<?> list)
使用默認隨機源對指定列錶進行置換。打亂集合順序

Collections.shuffle(stringList);

Collections.sort 排序

方法1:

String和Integer都實現了Comparable<泛型>這個接口,並且重寫了**public int compareTo()**這個方法,昇序排序。this - 參數 == 昇序排序,參數 - this == 降序排序

List<String> stringList = new ArrayList<>();
Collections.addAll(stringList,"b","a","d","c");
Collections.sort(stringList); //[a, b, c, d]

自定義一個Person類,按照年齡昇序排序(this - 參數 == 昇序排序,參數 - this == 降序排序)


public class Person implements Comparable<Person> {
    
    private Integer age;
    private String name;

    @Override
    public int compareTo(Person o) {
    
        return this.age-o.age; //this - 參數 == 昇序排序,參數 - this == 降序排序
    }
}

方法2:

List<Person2> stringList = new ArrayList<>();
Collections.addAll(stringList,new Person2(18,"張三"),new Person2(15,"李四"),new Person2(19,"王五"));
Collections.sort(stringList, new Comparator<Person2>() {
    
    @Override
    public int compare(Person2 o1, Person2 o2) {
    
        return o1.getAge()-o2.getAge();
    }
});
System.out.println(stringList);

Comparable和Comparator 的區別
Comparable: 自己(this)和別人(參數比較),自己需要實現Comparable接口,重寫compareTo方法
Comparator: 相當找第三方來比較,傳遞一個接口的匿名內部類

版權聲明
本文為[[email protected]]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271715182101.html

猜你喜歡

隨機推薦