欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java集合是什么

這篇文章主要介紹了Java集合是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到江永網(wǎng)站設(shè)計(jì)與江永網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋江永地區(qū)。

Java集合

1.什么是集合

概念:集合是存放對(duì)象的容器,并定義了對(duì)多個(gè)對(duì)象進(jìn)行操作的常用方法,可實(shí)現(xiàn)數(shù)組的功能。

和數(shù)組的區(qū)別:

  • (1)數(shù)組長(zhǎng)度固定,集合長(zhǎng)度不固定;

  • (2)數(shù)組可以存儲(chǔ)基本類(lèi)型和引用類(lèi)型,集合只能存儲(chǔ)引用類(lèi)型。

位置:java.util.*;

2.Collection體系集合

Java集合是什么

3.Collection接口

Collection接口通過(guò)頂層設(shè)計(jì)定義了許多針對(duì)集合的操作,大致可以分為增、刪、遍歷、判斷等幾個(gè)方面的方法。

boolean add(E e) 確保此集合包含指定的元素(可選操作)。  
boolean addAll(Collection<? extends E> c) 將指定集合中的所有元素添加到這個(gè)集合(可選操作)。

void clear() 從這個(gè)集合中移除所有的元素(可選操作)。  
boolean remove(Object o) 從這個(gè)集合中移除指定元素的一個(gè)實(shí)例,如果它是存在的(可選操作)。  
boolean removeAll(Collection<?> c) 刪除此集合中包含的所有元素(可選操作)的所有元素(可選操作)。 
default boolean removeIf(Predicate<? super E> filter) 刪除滿(mǎn)足給定謂詞的這個(gè)集合的所有元素。  
boolean retainAll(Collection<?> c) 僅保留包含在指定集合中的這個(gè)集合中的元素(可選操作)。

遍歷

Iterator<E> iterator() 返回此集合中的元素的迭代器。   
Object[] toArray() 返回包含此集合中所有元素的數(shù)組。  
<T> T[] toArray(T[] a) 返回包含此集合中所有元素的數(shù)組;返回?cái)?shù)組的運(yùn)行時(shí)類(lèi)型是指定的數(shù)組的運(yùn)行時(shí)類(lèi)型。

判斷

boolean contains(Object o) 返回 true如果集合包含指定元素。  
boolean containsAll(Collection<?> c) 返回 true如果這個(gè)集合包含指定集合的所有元素。  
boolean isEmpty() 返回 true如果集合不包含任何元素。

其它

int size() 返回此集合中的元素的數(shù)目。  
boolean equals(Object o) 將指定的對(duì)象與此集合進(jìn)行比較,以進(jìn)行相等性。  
int hashCode() 返回此集合的哈希代碼值。

4.Collection的使用

遍歷常用的兩種方法:forEach和Iterator

public class Demo1 {
    public static void main(String[] args) {
        Collection collection = new ArrayList();
        collection.add("蘋(píng)果");
        collection.add("香蕉");
        collection.add("西瓜");
        //1.foreach
        for(Object object : collection) {
            System.out.println(object);
        }
        
        /**
         * 2.使用Iterator,其包含三個(gè)方法:
         * hasnext():判斷是否有下一個(gè)元素
         * next():獲取下一個(gè)元素
         * remove():刪除迭代器返回的最后一個(gè)元素
         */
        Iterator it = collection.iterator();
        while(it.hasNext()) {
            String object = (String)it.next();
//            collection.remove(object); 不能使用被遍歷集合的刪除方法,會(huì)報(bào)并發(fā)修改異常
            it.remove();
            System.out.println(object);
        }
        System.out.println(collection.size());
    }
}

5.List子接口

(1)基本情況

特點(diǎn):有序、有下標(biāo)、元素可以重復(fù)。

List在父接口Collection的基礎(chǔ)上新增了許多方法。

void add(int index, E element) 在列表中指定的位置上插入指定的元素(可選操作)。  
boolean addAll(Collection<? extends E> c) 追加指定集合的所有元素到這個(gè)列表的末尾,按他們的指定集合的迭代器返回(可選操作)。

E remove(int index) 移除此列表中指定位置的元素(可選操作)。

遍歷

ListIterator<E> listIterator() 返回列表元素的列表迭代器(在適當(dāng)?shù)捻樞颍?nbsp; 
ListIterator<E> listIterator(int index) 在列表中的元素上返回列表迭代器(在適當(dāng)?shù)捻樞颍?,從列表中的指定位置開(kāi)始。

其它

Object get(int index) 根據(jù)下標(biāo)返回指定位置元素
int indexOf(Object o) 返回此列表中指定元素的第一個(gè)出現(xiàn)的索引,或-如果此列表不包含元素,或- 1。  
List subList(int fromIndex, int toIndex) 返回指定索引之間的集合元素
E set(int index, E element) 用指定元素替換此列表中指定位置的元素(可選操作)。  
default void sort(Comparator<? super E> c) 分類(lèi)列表使用提供的 Comparator比較元素。
(2)遍歷

1.for、foreach、Collection提供的迭代器接口

public class Demo2 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("華為");
        list.add("蘋(píng)果");
        list.add("小米");
        //1.for
        for(int i=0; i<list.size(); i++) {
            System.out.println(list.get(i));
        }

        //2.forEach
        for(Object str : list) {
            System.out.println(str);
        }

        //3.迭代器
        Iterator it = list.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

2、使用ListIterator

//順序遍歷
ListIterator lit = list.listIterator();
while(lit.hasNext()) {
    System.out.println(lit.next());
}
//逆序遍歷
while (lit.hasPrevious()) {
    System.out.println(lit.previous());
}

ListIterator常用方法

boolean hasNext()  返回 true如果列表迭代器具有更多的元素時(shí),正向遍歷列表。  
boolean hasPrevious() 返回 true如果列表迭代器具有更多的元素時(shí),逆向遍歷列表。  
E next() 返回列表中的下一個(gè)元素,并推進(jìn)光標(biāo)位置。  
E previous() 返回列表中的前一個(gè)元素,并向后移動(dòng)光標(biāo)位置。  
void remove() 從列表中刪除最后一個(gè)元素是由 next()或 previous()返回(可選操作)。

6.List實(shí)現(xiàn)類(lèi)

三種實(shí)現(xiàn)類(lèi)
  • ArrayList【重點(diǎn)】

    • 數(shù)組結(jié)構(gòu)實(shí)現(xiàn),查詢(xún)快、增刪慢;

    • 運(yùn)行效率快、線(xiàn)程不安全。

  • LinkedList

    • 雙向鏈表實(shí)現(xiàn),增刪快,查詢(xún)慢。

  • Vector(很少使用)

    • 數(shù)組結(jié)構(gòu)實(shí)現(xiàn);

    • 運(yùn)行效率慢、線(xiàn)程安全

重寫(xiě)equals()方法

當(dāng)要?jiǎng)h除List中的指定對(duì)象時(shí),需要比較兩個(gè)對(duì)象是否相同,如果要實(shí)現(xiàn)不根據(jù)同一引用刪除屬性相同的對(duì)象,此時(shí)需要在該對(duì)象類(lèi)中重寫(xiě)equals方法,如下為經(jīng)典的重寫(xiě)方法,記下來(lái)。

@Override
public boolean equals(Object obj) {
    //是否為同一對(duì)象
    if (this == obj) {
        return true;
    }
    //是否為空
    if (this == null) {
        return false;
    }
    //是否為同類(lèi)對(duì)象
    if (obj instanceof Student) {
        Student s = (Student) obj;
        //比較屬性是否相等
        if(this.name = s.name && this.age == s.age){
            return true;
        }
    }
    return false;
}
ArraysList源碼解析

重要參數(shù):

  • int size:元素?cái)?shù)目;

  • Object[] elementData:保存元素的數(shù)組;

add()方法源碼解析

public boolean add(E e) {
    modCount++;
    add(e, elementData, size);
    return true;
}
private void add(E e, Object[] elementData, int s) {
    //數(shù)組存放滿(mǎn)了,擴(kuò)容
    if (s == elementData.length)
        elementData = grow();
    elementData[s] = e;
    size = s + 1;
}

//擴(kuò)容
private Object[] grow() {
    return grow(size + 1);
}
//將舊數(shù)組擴(kuò)容
private Object[] grow(int minCapacity) {
    return elementData = Arrays.copyOf(elementData,
                                       newCapacity(minCapacity));
}
private int newCapacity(int minCapacity) {
    // overflow-conscious code
    int oldCapacity = elementData.length;
    int newCapacity = oldCapacity + (oldCapacity >> 1);
    if (newCapacity - minCapacity <= 0) {
        //數(shù)組為空
        if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA)
            return Math.max(DEFAULT_CAPACITY, minCapacity);
        if (minCapacity < 0) // overflow
            throw new OutOfMemoryError();
        return minCapacity;
    }
    return (newCapacity - MAX_ARRAY_SIZE <= 0)
        ? newCapacity
        : hugeCapacity(minCapacity);
}

private static int hugeCapacity(int minCapacity) {
    if (minCapacity < 0) // overflow
        throw new OutOfMemoryError();
    return (minCapacity > MAX_ARRAY_SIZE)
        ? Integer.MAX_VALUE
        : MAX_ARRAY_SIZE;
}
LinkedList源碼解析

相關(guān)參數(shù):

  • int size:集合的大小

  • Node first:鏈表頭節(jié)點(diǎn)

  • Node last:鏈表尾節(jié)點(diǎn)

add方法源碼

public boolean add(E e) {
    linkLast(e);
    return true;
}
/**
  * Links e as last element.
  */
void linkLast(E e) {
    final Node<E> l = last;
    final Node<E> newNode = new Node<>(l, e, null);
    last = newNode;
    if (l == null)
        first = newNode;
    else
        l.next = newNode;
    size++;
    modCount++;
}
private static class Node<E> {
    E item;
    Node<E> next;
    Node<E> prev;

    Node(Node<E> prev, E element, Node<E> next) {
        this.item = element;
        this.next = next;
        this.prev = prev;
    }
}

7.泛型

泛型概念
  • Java泛型的本質(zhì)是參數(shù)化類(lèi)型,把類(lèi)型作為參數(shù)傳遞;

  • 常見(jiàn)形式有泛型類(lèi)、泛型接口、泛型方法;

  • 語(yǔ)法:

    • <T,...> T稱(chēng)為類(lèi)型占位符,表示一種引用類(lèi)型;

  • 好處:

    • (1)提高代碼的重用性;

    • (2)防止類(lèi)型轉(zhuǎn)換異常,提高代碼的安全性。

泛型類(lèi)

1.定義泛型類(lèi)及泛型的用途

/**
 * 泛型類(lèi)
 * 語(yǔ)法:類(lèi)名<T>
 *     T 是類(lèi)型占位符,表示一種引用類(lèi)型,如果編寫(xiě)多個(gè)則使用逗號(hào)隔開(kāi)
 * @param <T>
 */
public class MyGeneric<T> {
    //使用泛型
    //1.創(chuàng)建變量
    T t;
    
    //2.泛型作為方法的參數(shù)
    public void show(T t) {
        System.out.println(t);
    }
    
    //3.泛型作為方法的返回值
    public T getT() {
        return t;
    }
}

2.使用泛型

注意:

  • (1)泛型只能使用引用類(lèi)型;

  • (2)不同泛型類(lèi)型對(duì)象之間不能相互賦值。

public class TestGeneric {
    public static void main(String[] args) {
        MyGeneric<String> myGeneric = new MyGeneric<>();
        myGeneric.t = "蘋(píng)果";
        myGeneric.show("吃蘋(píng)果");

        MyGeneric<Integer> myGeneric1 = new MyGeneric<>();
        myGeneric.t = "100";
        myGeneric.show("打100分");
    }
}
泛型接口

(1)定義泛型

/**
 * 泛型接口
 * 語(yǔ)法:接口名<T>
 * 注意:不能使用泛型創(chuàng)建靜態(tài)常量
 */
public interface MyInterface<T> {
    String name = "apple";

    T server(T t);
}

(2)使用泛型

//1.寫(xiě)實(shí)現(xiàn)類(lèi)時(shí)指定類(lèi)型
public class MyInterfaceImpl implements MyInterface<String>{
    @Override
    public String server(String s) {
        return s;
    }
}

//2.創(chuàng)建對(duì)象時(shí)再指定類(lèi)型
public class MyInterfaceImpl1<T> implements MyInterface<T> {
    @Override
    public T server(T t) {
        return t;
    }
}
public class TestGeneric {
    public static void main(String[] args) {
        MyInterfaceImpl1<String> myInterfaceImpl1 = new MyInterfaceImpl1<>();
        System.out.println(myInterfaceImpl1.server("apple1"));
    }
}
泛型方法

(1)定義

/**
 * 泛型方法
 * 語(yǔ)法:<T> 返回值類(lèi)型
 */
public class GenericMethod {
    //泛型方法, 泛型T可以作為方法的參數(shù)或返回值
    public <T> void show(T t) {
        System.out.println(t);
    }
}

(2)使用

在使用時(shí)傳入具體類(lèi)型的值。

public class TestGeneric {
    public static void main(String[] args) {
        GenericMethod genericMethod = new GenericMethod();
        genericMethod.show("apple");
        genericMethod.show(200);
        genericMethod.show(3.14);
    }
}
泛型集合

概念:參數(shù)化類(lèi)型、類(lèi)型安全的集合,強(qiáng)制集合元素的類(lèi)型必須一致。

特點(diǎn):

  • 編譯時(shí)即可檢查,而非運(yùn)行時(shí)拋出異常;

  • 訪(fǎng)問(wèn)時(shí),不必類(lèi)型轉(zhuǎn)換(拆箱);

  • 不同泛型之間引用不能相互賦值,泛型不存在多態(tài)。

public class TestGeneric {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList();
        arrayList.add("apple");
        arrayList.add("banana");
        arrayList.add(100);
        arrayList.add(3.14);
        for (Object object : arrayList) {
            System.out.println(object);
        }

        //使用泛型限定傳入的元素類(lèi)型
        ArrayList<String> arrayList1 = new ArrayList<>();
        arrayList1.add("apple");
        arrayList1.add(100); //添加其它類(lèi)型時(shí)會(huì)報(bào)錯(cuò)
    }
}

8.Set子接口

特點(diǎn):無(wú)序、無(wú)下標(biāo)、元素不可重復(fù);

方法:全部繼承自Collection中的方法。

1.Set實(shí)現(xiàn)類(lèi)
  • HashSet【重點(diǎn)】

    • 基于HashCode實(shí)現(xiàn)元素不重復(fù)和確認(rèn)元素存放位置;

    • 當(dāng)存入元素的哈希碼相同時(shí),會(huì)調(diào)用equals進(jìn)行確認(rèn),如結(jié)果為true,則拒絕后者存入。

  • TreeSet

    • 基于排列順序?qū)崿F(xiàn)元素不重復(fù)。

2.遍歷

使用foreach和Iterator。

public class Demo7 {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("Jack"); set.add("Lucy"); set.add("Micheal");
		//1.foreach
        for(String string : set)
            System.out.println(string);
        
        //2.Iterator
        Iterator it = set.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}
3.HashSet

存儲(chǔ)結(jié)構(gòu):哈希表(數(shù)組+鏈表+紅黑樹(shù));

存儲(chǔ)過(guò)程:

  • (1)根據(jù)元素的hashcode計(jì)算保存的位置,如果該位置為空,則直接保存,否則指定第(2)步;

  • (2)再執(zhí)行equals方法,如果equals返回true,則認(rèn)為存在重復(fù)元素,不添加,如果為false,則在保存位置形成鏈表,當(dāng)鏈表中元素?cái)?shù)量超過(guò)指定值時(shí),形成紅黑樹(shù)。

重寫(xiě)hashcode()與equals()方法

@Override
public int hashCode() {
    return Objects.hash(age, name);
}    

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    //getClass()返回對(duì)象的hashcode
    if (o == null || getClass() != o.getClass()) return false;
    Person person = (Person) o;
    return age == person.age &&
        Objects.equals(name, person.name);
}
4.TreeSet
  • 基于排列順序?qū)崿F(xiàn)元素不重復(fù);

  • 實(shí)現(xiàn)了SortedSet接口,對(duì)集合元素自動(dòng)排序;

  • 元素對(duì)象的類(lèi)型必須實(shí)現(xiàn)Comparable接口,指定順序規(guī)則;

  • 通過(guò)CompareTo方法確定是否為重復(fù)元素。

存儲(chǔ)結(jié)構(gòu):紅黑樹(shù)

(1)存儲(chǔ)元素為對(duì)象時(shí)必須實(shí)現(xiàn)Comparable接口

并重寫(xiě)其中的compareTo方法,否則元素之間無(wú)法比較大小,不能排序,會(huì)報(bào)類(lèi)型轉(zhuǎn)換錯(cuò)誤。

compareTo()返回為0,表示元素重復(fù)。

foreach與迭代器方式
package collectionTest;

import java.util.Objects;

public class Person implements Comparable{
	//TODO
    @Override
    public int compareTo(Object o1) {
        Person o = (Person)o1;
        int n1 = this.getName().compareTo(o.getName());
        int n2 = this.getAge() - o.getAge();
        return n1 == 0 ? n2 : n1;
    }
}

(2)Comparator

實(shí)現(xiàn)定制的比較器,并在創(chuàng)建TreeSet時(shí)傳入該比較器指定比較規(guī)則,如此存儲(chǔ)的元素對(duì)象便不用實(shí)現(xiàn)Comparable接口。

public class Demo3 {
    public static void main(String[] args) {
        //使用匿名內(nèi)部類(lèi)
        TreeSet<Person> hashSet = new TreeSet<>(new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                int n2 = o1.getName().compareTo(o2.getName());
                int n1 = o1.getAge() - o2.getAge();
                return n1 == 0 ? n2 : n1;
            }
        });
    }
}

9.Map集合

Java集合是什么

Map父接口

特點(diǎn):存儲(chǔ)鍵值對(duì),無(wú)序、無(wú)下標(biāo),鍵不可重復(fù),值可重復(fù)。

方法:

  • V put(K key, V value)  將指定的值與該映射中的指定鍵相關(guān)聯(lián)(可選操作)。  
    V get(Object key) 返回到指定鍵所映射的值,或 null如果此映射包含該鍵的映射。    
    Set<K> keySet() 返回此集合中包含的鍵的Set集合。  
    Collection<V> values() 返回此集合中包含的值的Collection集合。 
    Set<Map.Entry<K,V>> entrySet() 返回此集合中包含的映射的Set集合。

遍歷
  • (1)使用keySet()

  • (2)使用entrySet()

    • entryset()的效率較高,因?yàn)橐淮涡垣@取到了映射對(duì)的key和value值。

public class Demo5 {
    public static void main(String[] args) {
        HashMap<Integer, String> hashMap = new HashMap<>();
        hashMap.put(1, "Jack");
        hashMap.put(2, "Lucy");
        hashMap.put(3, "asdfaJack");
        hashMap.put(4, "DLucy");
        
		//1.keySet()
//        Set<Integer> keySet = hashMap.keySet();
        for(Integer key : hashMap.keySet()) {
            System.out.println(key + " : " + hashMap.get(key));
        }
		
        //2.entrySet()
//        Set<Map.Entry<Integer, String>> entries = hashMap.entrySet();
        for(Map.Entry<Integer, String> entry : hashMap.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}
Map集合的實(shí)現(xiàn)類(lèi)
  • HashMap:線(xiàn)程不安全,運(yùn)行效率快;允許使用null作為key或value;

  • Hashtable:線(xiàn)程安全,運(yùn)行效率慢,不允許null作為key或value。

    • Properties:Hashtable的子類(lèi),要求key和value都是String,通常用于配置文件的讀取。

  • TreeMap:實(shí)現(xiàn)了SortedMap接口(是Map的子接口),可以對(duì)key自動(dòng)排序。

HashMap源碼解析

相關(guān)參數(shù)

static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // hashmap初始容量大小
static final int MAXIMUM_CAPACITY = 1 << 30; //hashmap數(shù)組最大容量
static final float DEFAULT_LOAD_FACTOR = 0.75f; //默認(rèn)裝載因子
static final int TREEIFY_THRESHOLD = 8; //jdk1.8 當(dāng)鏈表長(zhǎng)度大于8時(shí),調(diào)整成紅黑樹(shù)
static final int UNTREEIFY_THRESHOLD = 6; //鏈表長(zhǎng)度小于6,調(diào)整成鏈表
static final int MIN_TREEIFY_CAPACITY = 64; //jdk1.8 當(dāng)鏈表長(zhǎng)度大于8且集合元素個(gè)數(shù)大于等于64時(shí),調(diào)整成紅黑樹(shù)。
transient Node<K,V>[] table;  //哈希表中的數(shù)組
transient size; //元素個(gè)數(shù)

構(gòu)造函數(shù)

public HashMap() {
    this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted
}

//剛創(chuàng)建的hashmap沒(méi)有添加元素,table=null,size=0
HashMap<Integer, String> hashMap = new HashMap<>();

put() 方法解析,待深入了解。

public V put(K key, V value) {
    return putVal(hash(key), key, value, false, true);
}
TreeMap

TreeMap與TreeSet一樣,底層都是由紅黑樹(shù)實(shí)現(xiàn),是有序的,因此元素之間必須是可比較的,可以通過(guò)讓元素繼承Comparable或者在調(diào)用TreeMap的構(gòu)造方法時(shí)傳入自制比較器實(shí)現(xiàn)。

遍歷方式

(1)使用keySet()
(2)使用entrySet()
public class Demo6 {
    public static void main(String[] args) {
        TreeMap<Student, String> treeMap = new TreeMap<>();
        Student s1 = new Student(11, "Jack");
        Student s2 = new Student(17, "adfJack");
        Student s3 = new Student(14, "dafJack");
        Student s4 = new Student(12, "fJdack");
        treeMap.put(s1, "nihao");
        treeMap.put(s2, "nihao");
        treeMap.put(s3, "nihao");
        treeMap.put(s4, "nihao");

        for(Student key : treeMap.keySet()) {
            System.out.println(key + " : " + treeMap.get(key));
        }
        
        for(Map.Entry<Student, String> entry : treeMap.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}

class Student implements Comparable{
    private int age;
    private String name;
    //TODO
}

10.Collections工具類(lèi)

概念:集合工具類(lèi),定義了出了存取以外的集合常用方法。

方法

void sort(List<T> list) 指定列表為升序排序,根據(jù)其元素的 natural ordering。  
void sort(List<T> list, Comparator<? super T> c) 根據(jù)指定的比較器指定的順序?qū)χ付ǖ牧斜磉M(jìn)行排序。 

static void reverse(List<?> list) 反轉(zhuǎn)指定列表中元素的順序。  
static void shuffle(List<?> list) 隨機(jī)置換指定列表使用隨機(jī)默認(rèn)源。  
static void swap(List<?> list, int i, int j) 在指定的列表中的指定位置上交換元素。  
static <T> void copy(List<? super T> dest, List<? extends T> src) 將所有的元素從一個(gè)列表復(fù)制到另一個(gè)列表中。

copy函數(shù),必須保證dst的長(zhǎng)度與src一致。

public class Demo7 {
    public static void main(String[] args) {
        List<Integer> src = new ArrayList<>();
        src.add(1);src.add(2);src.add(100);src.add(89);
        List<Integer> dst = new ArrayList<>();
        //讓dst的長(zhǎng)度與src一致
        for(int i=0; i<src.size(); i++)
            dst.add(0);
        Collections.copy(dst, src);
        System.out.println(dst);
    }
}

11.Arrays工具類(lèi)

方法

static <T> List<T> asList(T... a) 返回由指定數(shù)組支持的一個(gè)固定大小的列表。

List轉(zhuǎn)數(shù)組

public class Demo7 {
    public static void main(String[] args) {
        List<Integer> src = new ArrayList<>();
        src.add(1);src.add(2);src.add(100);src.add(89);
        //傳入數(shù)組類(lèi)型作為參數(shù)
        Integer[] integers = src.toArray(new Integer[0]);
        System.out.println(Arrays.toString(integers));
    }
}

數(shù)組轉(zhuǎn)集合

public class Demo7 {
    public static void main(String[] args) {
        Integer[] integers = new Integer[] {1, 2, 3, 4, 5};
        List<Integer> list = Arrays.asList(integers);
        System.out.println(list);
    }
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Java集合是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

分享題目:Java集合是什么
URL鏈接:http://aaarwkj.com/article2/gopoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作云服務(wù)器、品牌網(wǎng)站建設(shè)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
中文字幕免费不卡一区| 中文字幕人妻熟女在线| 国产传媒在线播放一区| 国产成人综合久久三区北岛玲| 欧美亚洲国产精品久久久| 亚洲综合另类小说专区| 国产综合欧美日韩在线91| 中文字幕免费日本在线| 91精品国产高清久久福利| 一区二区三区蜜桃91| 男女搞j视频网站免费观看| av黄色在线播放网页| 很色很污无遮挡的网色污| 一区二区视频精品在线观看| 久久精品国产亚洲av麻豆花絮 | 99热这里有精品久久| 青青草av一区二区三区| 91蜜臀在线视频播放| 亚洲日本乱码一区二区三| 国产传媒在线观看网站| 亚洲综合国产中文字幕| 国产精品三级竹菊影视| 高清欧美大片免费观看| 一区二区在线观看激情| 日韩一区二区三精品| 国产精品亚洲精品久久| 欧美高清精品在线视频| 中文字幕在线一区国产精品| 激情小说婷婷亚洲综合| 一区二区三区四区中文在线| 伊人丁香六月日日操操| av剧情网址在线观看| 91大神午夜在线观看| 午夜福利福利一区二区| 少妇激情一区二区三区免费视频| 欧美性精品不卡在线观看| 中文字幕日韩欧美第一页| 亚洲国产传媒在线观看| 久久久久亚洲av成人| 在线观看免费国产k片| 国产一区二区不卡在线播放|