91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Collection接口的分析

發布時間:2021-11-26 09:55:03 來源:億速云 閱讀:140 作者:柒染 欄目:編程語言

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

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

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

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

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

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

_集合框架(棧和隊列數據結構)(掌握)
* 棧
        * 先進后出 
* 隊列
        * 先進先出

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

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

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

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

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

LinkedHashSet方法
特點:底層是鏈表實現的 是Set()集合中唯一一個能保證怎么存怎么取得功能
因為是HashSet的子類,索引也是保證元素的唯一性

TreeSet 集合: 
一般類型 用來對元素進行排序的并且保證元素的唯一(去除重復元素,并排序)
引用數據類型:首先:重寫toString()方法;(如果不重寫輸出的是地址值)
實現接口implements comparable<本類名> 此時類名會報錯(ctrl+1) 
自動創建一個方法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;        //比較內容為次要條件
                return num == 0 ? this.age - o.age : num;                                                //比較年齡為次要條件
        }            
面試手寫 
        public boolean equals(Object obj) {
                System.out.println("執行了嗎");
                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.特點
        * TreeSet是用來排序的, 可以指定一個順序, 對象存入之后會按照指定的順序排列
* 2.使用方式
        * a.自然順序(Comparable)
                * TreeSet類的add()方法中會把存入的對象提升為Comparable類型
                * 調用對象的compareTo()方法和集合中的對象比較
                * 根據compareTo()方法返回的結果進行存儲
        * b.比較器順序(Comparator)
                * 創建TreeSet的時候可以制定 一個Comparator
                * 如果傳入了Comparator的子類對象, 那么TreeSet就會按照比較器中的順序排序
                * add()方法內部會自動調用Comparator接口中compare()方法排序
                * 調用的對象是compare方法的第一個參數,集合中的對象是compare方法的第二個參數
        * c.兩種方式的區別
                * TreeSet構造函數什么都不傳, 默認按照類中Comparable的順序(沒有就報錯ClassCastException)
                * TreeSet如果傳入Comparator, 就優先按照Comparator

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

峨边| 桃源县| 五家渠市| 东莞市| 纳雍县| 孝昌县| 桐庐县| 镇原县| 哈尔滨市| 常熟市| 自治县| 清丰县| 西乌| 白山市| 黄浦区| 辽中县| 金坛市| 长岭县| 尚志市| 涞水县| 双江| 渝北区| 临颍县| 建平县| 比如县| 堆龙德庆县| 武义县| 白沙| 陆丰市| 阳高县| 罗田县| 扎鲁特旗| 宁武县| 鞍山市| 普定县| 建湖县| 沿河| 朝阳县| 林口县| 遂昌县| 定州市|