真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何進(jìn)行Collection接口的分析

如何進(jìn)行Collection接口的分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

中衛(wèi)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),中衛(wèi)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為中衛(wèi)上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的中衛(wèi)做網(wǎng)站的公司定做!

###15Collection-List-ArrayList/LinkedList/
*  * Collection接口中的方法
* A:添加功能
*                 boolean add(Object obj):把obj這個(gè)元素,添加到集合中去
*                 boolean addAll(Collection c):將 c 這個(gè)集合中的所有元素,都添加到本集合中來
* B:刪除功能
*                 void clear():刪除集合中的所有元素。
*                 boolean remove(Object obj):從集合中刪除  obj 這個(gè)元素
*                 boolean removeAll(Collection c):從集合中刪除c中含有的所有元素 
* C:判斷功能
*                 boolean isEmpty():判斷集合是否為空。
*                 boolean contains(Object obj):判斷集合中是否存在 obj這個(gè)元素。
*                 boolean containsAll(Collection c):判斷集合中是否存在 c 集合中的所有元素。
* D:遍歷功能
*                 Iterator iterator():就是用來獲取集合中每一個(gè)元素。
* E:長度功能
*                 int size():獲取集合中的元素個(gè)數(shù)
* F:交集功能
*                 boolean retainAll(Collection c): 保留本集合和c這個(gè)集合中的共同元素
* G:把集合轉(zhuǎn)換成數(shù)組
*                 Object[] toArray():把集合變成 Object類型的數(shù)組。 
*/

/*
* List接口中的方法(List接口繼承了Collection接口,所以下面只列出了List接口的特有方法)
* List的特有功能:

* A:添加功能
*                 void add(int index, Object obj):在索引為 index的位置,添加 obj這個(gè)元素
* B:刪除功能
*                 Object remove(int index):刪除索引為index的元素,并把這個(gè)元素返回
* C:修改功能
*                 Object set(int index, Object obj):把索引為index的位置,修改為 obj這個(gè)元素, 并且把修改之前的元素返回。
* D:獲取功能
*                 int indexOf(Object obj):返回 obj這個(gè)元素在集合中第一次出現(xiàn)的索引
*                 Object get(int index):獲取索引為 index的元素對(duì)象
*                 ListIterator listIterator():列表迭代器
* E:截取功能
*                 List subList(int fromIndex, int toIndex):返回一個(gè)新的集合,這個(gè)集合里面的元素,是原來集合中的一部分,直接看下面代碼
*         
###15.08_集合框架(迭代器的原理及源碼解析)(了解)
Iterator it = iterator iterator();//獲取迭代器
it.hasNext()//判斷是否有元素一般while(it.hasNext())
It.next();//獲取元素

###15.12_集合框架(ListIterator)(了解)
* boolean hasNext()是否有下一個(gè)
* boolean hasPrevious()是否有前一個(gè)
* Object next()返回下一個(gè)元素
* Object previous();返回上一個(gè)元素

###15.13_集合框架(Vector的特有功能)(面試用開發(fā)中不用)
* A:Vector類概述
* B:Vector類特有功能
        * public void addElement(E obj)
        * public E elementAt(int index)
        * public Enumeration elements()
B:List有三個(gè)兒子,我們到底使用誰呢?
                查詢多用ArrayList
                增刪多用LinkedList
                如果都多ArrayList
集合框架(LinkedList的特有功能)(掌握)
* A:LinkedList類概述
* B:LinkedList類特有功能
        * public void addFirst(E e)及addLast(E e) //在開始加入元素//在最后加入元素
        * public E getFirst()及getLast()////獲取第一個(gè)元素//獲取最后元素
        * public E removeFirst()及public E removeLast() //刪除第一個(gè)元素//刪除最后一個(gè)元素
        * public E get(int index);// 獲取索引處的元素

_集合框架(棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu))(掌握)
* 棧
        * 先進(jìn)后出 
* 隊(duì)列
        * 先進(jìn)先出

_集合框架(泛型概述和基本使用)(掌握)
* A:泛型概述
* B:泛型好處
        * 提高安全性(將運(yùn)行期的錯(cuò)誤轉(zhuǎn)換到編譯期) 
        * 省去強(qiáng)轉(zhuǎn)的麻煩
* C:泛型基本使用
        * <>中放的必須是引用數(shù)據(jù)類型 
* D:泛型使用注意事項(xiàng)
        * 前后的泛型必須一致,或者后面的泛型可以省略不寫(1.7的新特性菱形泛型)  
集合框架(增強(qiáng)for的概述和使用)(掌握)
* A:增強(qiáng)for概述
        * 簡化數(shù)組和Collection集合的遍歷
* B:格式:

                for(元素?cái)?shù)據(jù)類型 變量 : 數(shù)組或者Collection集合) {
                        使用變量即可,該變量就是元素
                }
_集合框架(三種迭代的能否刪除)(掌握)
* 普通for循環(huán),可以刪除,但是索引要--
* 迭代器,可以刪除,但是必須使用迭代器自身的remove方法,否則會(huì)出現(xiàn)并發(fā)修改異常
* 增強(qiáng)for循環(huán)不能刪除只能遍歷

_集合框架(靜態(tài)導(dǎo)入的概述和使用)(了解)
* A:靜態(tài)導(dǎo)入概述
* B:格式:
        * import static 包名….類名.方法名;
        * 可以直接導(dǎo)入到方法的級(jí)別
* C:注意事項(xiàng)
        * 方法必須是靜態(tài)的,如果有多個(gè)同名的靜態(tài)方法,容易不知道使用誰?
        這個(gè)時(shí)候要使用,必須加前綴。由此可見,意義不大,所以一般不用,但是要能看懂。
_集合框架(可變參數(shù)的概述和使用)(掌握)
* A:可變參數(shù)概述
        * 定義方法的時(shí)候不知道該定義多少個(gè)參數(shù)
* B:格式
        * 修飾符 返回值類型 方法名(數(shù)據(jù)類型…  變量名){}
* C:注意事項(xiàng):
        * 這里的變量其實(shí)是一個(gè)數(shù)組
        * 如果一個(gè)方法有可變參數(shù),并且有多個(gè)參數(shù),那么,可變參數(shù)肯定是最后一個(gè)
/**
         * * A:可變參數(shù)概述
                        * 定義方法的時(shí)候不知道該定義多少個(gè)參數(shù)
                * B:格式
                        * 修飾符 返回值類型 方法名(數(shù)據(jù)類型…  變量名){}
                * C:注意事項(xiàng):
                        * 這里的變量其實(shí)是一個(gè)數(shù)組
                        * 如果一個(gè)方法有可變參數(shù),并且有多個(gè)參數(shù),那么,可變參數(shù)肯定是最后一個(gè)
         */
        public static void main(String[] args) {
                int[] arr = {11,22,33,44,55};
                //print(arr);
                print(11,22,33,44,55);
                System.out.println("---------------");
                //print();
        }
        
        /*public static void print(int[] arr) {
                for (int i = 0; i < arr.length; i++) {
                        System.out.println(arr[i]);
                }
        }*/
public static void print(int ... arr) {                        //可變參數(shù)其實(shí)是一個(gè)數(shù)組
                for (int i = 0; i < 
錯(cuò)誤!未找到目錄項(xiàng)。
arr.length; i++) {
                        System.out.println(arr[i]);
                }
        }

集合框架(Arrays工具類的asList()方法的使用)(掌握)
* A:案例演示
        * Arrays工具類的asList()方法的使用
                Integer[] i = {1,2,3,4,5};
                List l = Arrays.asList(i);//將數(shù)組轉(zhuǎn)成集合只能用引用類型數(shù)組
                System.out.println(l);

        * Collection中toArray(T[] a)泛型版的集合轉(zhuǎn)數(shù)組
        
_集合框架(集合嵌套之ArrayList嵌套ArrayList)(掌握)
* A:案例演示
        * 集合嵌套之ArrayList嵌套ArrayList
HashSet方法
1)基本數(shù)據(jù)類型去掉重復(fù)元素并且無索引(進(jìn) 出不同)
2)引用數(shù)據(jù)類型:要重寫toString方法
  如果要去除重復(fù)就要重寫hashCode()方法與equals()方法
Hashcode()設(shè)置的原則:/如果對(duì)象的成員變量值一樣,那么就想辦法讓這個(gè)方法的返回值一樣,否則讓返回值不一樣
HashSet中想去掉重復(fù)元素必須重寫hashCode()和equals()方法;

LinkedHashSet方法
特點(diǎn):底層是鏈表實(shí)現(xiàn)的 是Set()集合中唯一一個(gè)能保證怎么存怎么取得功能
因?yàn)槭荋ashSet的子類,索引也是保證元素的唯一性

TreeSet 集合: 
一般類型 用來對(duì)元素進(jìn)行排序的并且保證元素的唯一(去除重復(fù)元素,并排序)
引用數(shù)據(jù)類型:首先:重寫toString()方法;(如果不重寫輸出的是地址值)
實(shí)現(xiàn)接口implements comparable<本類名> 此時(shí)類名會(huì)報(bào)錯(cuò)(ctrl+1) 
自動(dòng)創(chuàng)建一個(gè)方法compareTo(類名) {
判斷成員變量
}
以上三步缺一不可
        /*@Override
        //按照年齡排序
        public int compareTo(Person o) {
                int num = this.age - o.age;        //年齡是比較的主要條件
                return num == 0 ? this.name.compareTo(o.name) : num;//姓名是比較的次要條件
        }*/
        /*@Override
        //按照姓名排序
        public int compareTo(Person o) {
                int num = this.name.compareTo(o.name);                //姓名是主要條件
                return num == 0 ? this.age - o.age : num;        //年齡是次要條件
        }*/
        /*
         * aaa
         * bbb
         */
        public int compareTo(Person o) {
                int length = this.name.length() - o.name.length();                                //比較長度為主要條件
                int num = length == 0 ? this.name.compareTo(o.name) : length;        //比較內(nèi)容為次要條件
                return num == 0 ? this.age - o.age : num;                                                //比較年齡為次要條件
        }            
面試手寫 
        public boolean equals(Object obj) {
                System.out.println("執(zhí)行了嗎");
                Person p = (Person)obj;
                return this.name.equals(p.name) && this.age == p.age;
        }
        @Override
        public int hashCode() {
                final int NUM = 38;
                return name.hashCode() * NUM + age;
        }*/

HashSet()
* 1.特點(diǎn)
        * TreeSet是用來排序的, 可以指定一個(gè)順序, 對(duì)象存入之后會(huì)按照指定的順序排列
* 2.使用方式
        * a.自然順序(Comparable)
                * TreeSet類的add()方法中會(huì)把存入的對(duì)象提升為Comparable類型
                * 調(diào)用對(duì)象的compareTo()方法和集合中的對(duì)象比較
                * 根據(jù)compareTo()方法返回的結(jié)果進(jìn)行存儲(chǔ)
        * b.比較器順序(Comparator)
                * 創(chuàng)建TreeSet的時(shí)候可以制定 一個(gè)Comparator
                * 如果傳入了Comparator的子類對(duì)象, 那么TreeSet就會(huì)按照比較器中的順序排序
                * add()方法內(nèi)部會(huì)自動(dòng)調(diào)用Comparator接口中compare()方法排序
                * 調(diào)用的對(duì)象是compare方法的第一個(gè)參數(shù),集合中的對(duì)象是compare方法的第二個(gè)參數(shù)
        * c.兩種方式的區(qū)別
                * TreeSet構(gòu)造函數(shù)什么都不傳, 默認(rèn)按照類中Comparable的順序(沒有就報(bào)錯(cuò)ClassCastException)
                * TreeSet如果傳入Comparator, 就優(yōu)先按照Comparator

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


分享題目:如何進(jìn)行Collection接口的分析
網(wǎng)站地址:http://weahome.cn/article/gjjogo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部