Java编程思想笔记(持有对象)
????? 1.泛型和類型安全的容器
????? 2.基本概念
????? 3.添加一組元素:Arrays.asList()方法接受一個數組或是一個用逗號分隔的元素列表(使用可變參數),并將其轉換為一個LIst對象。Collections.addAll()方法接受一個Collection對象,以及一個數組或是一個用逗號分割的列表,將元素添加到Collection中。Collection.addAll()成員方法只能接受另一個Collection對象作為參數,因此它不如Arrays.asList()或Collections.addAll()靈活,這兩個方法使用的都是可變參數列表。
????? 4.容器的打印:List,它以特定的順序保存一組元素;set,元素不能重復;Queue,只允許在容器的一“端”插入對象,并從另外一“端”移除對象。Map在每個槽內保存了兩個對象,即鍵和與之相關聯的值。
????? 5.List:ArrayList,它長于隨機訪問元素,但是在List的中間插入和移除元素時較慢。LinkedList,它通過代價較低的在List中間進行的插入和刪除操作,提供了優化的順序訪問。
????? 6.迭代器:Java的Iterator只能單向移動,這個Iterator只能用來:1.使用方法iterator()要求容器返回一個Iterator。Iterator將準備好返回序列的第一個元素。2.使用next()獲得序列中的下一個元素。3.使用hasNext()檢查序列中是否還有元素。4.使用remove()將迭代器新返回的元素刪除。
????? 6(1).ListIterator:只能用于各種List類的訪問;可以雙向移動;產生相對于迭代器在列表中指向的當前位置的前一個和后一個元素的索引,并且可以使用set()方法替換它訪問過的最后一個元素;通過調用listIterator()方法產生一個指向List開始處的ListIterator,并且還可以通過調用ListIterator(n)方法創建一個一開始就指向列表索引為n的元素處的ListIterator。
????? 7.LinkedList
????? 8.Stack:“棧”通常是指“后進先出”的容器。push()接受的是T類型的對象,而peek()和pop()將返回T類型的對象。peek()方法將提供棧頂元素,但是并不將其從棧頂移除。
????? 9.Set
????? 10.Map
????? 11.Queue:隊列是一個典型的先進先出的容器。offer()方法是與Queue相關的方法之一,它在允許的情況下,將一個元素插入到隊尾,或者返回false。peek()和element()都將在不移除的情況下返回對頭,但是peek()方法在隊列為空時返回null,而element()會拋出NoSuchElementException異常。poll()和remove()方法將移除并返回隊頭,但是poll()在隊列為空時返回null,而remove()會拋出NoSuchElementException異常。
????? 11(1).PriorityQueue:優先級隊列聲明下一個彈出元素是最需要的元素(具有最高的優先級)。
????? 12.Collection和Iterator
??????13.Foreach與迭代器
????? 13(1).適配器方法慣用法
????? 補充:Iterator是迭代器類,而Iterable是接口。因為Iterator接口的核心方法next()或者hasNext() 是依賴于迭代器的當前迭代位置的。?如果Collection直接實現Iterator接口,勢必導致集合對象中包含當前迭代位置的數據(指針)。?當集合在不同方法間被傳遞時,由于當前迭代位置不可預置,那么next()方法的結果會變成不可預知。?除非再為Iterator接口添加一個reset()方法,用來重置當前迭代位置。?但即時這樣,Collection也只能同時存在一個當前迭代位置。?而Iterable則不然,每次調用都會返回一個從頭開始計數的迭代器。?多個迭代器是互不干擾的。
轉載于:https://www.cnblogs.com/Zara/p/5768550.html
總結
以上是生活随笔為你收集整理的Java编程思想笔记(持有对象)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bash:如何查看某个文件是那个程序/进
- 下一篇: sql server--优化