JavaSE—集合框架
2019獨角獸企業重金招聘Python工程師標準>>>
聲明:本欄目所使用的素材都是凱哥學堂VIP學員所寫,學員有權匿名,對文章有最終解釋權;凱哥學堂旨在促進VIP學員互相學習的基礎上公開筆記。
集合框架:
System.arraycopy:
1.數組對象
2.從第幾個下表開始拷貝
3.接受的數組對象
4.從第幾個下表開始存放
5.要拷貝多長
使用System.arraycopy();拷貝方法,拷貝數組的參數,提高代碼的執行效率。
改善集合每次new對象問題,不要每次傳進參數都要new對象,所以我們在第一次創建對象數組時長度就為5,如果本次只傳4-5個數據的話那就不需要重新new數組。然后創建一個屬性index=0,然后objs[index++]=value;后加加,第一個值等于傳進來的val;
問一下現在的數組長度是否能存儲當前值,不能存儲的話就重新new一個數組,長度是原來數組的1.75倍,新數組創建完成后就拷貝老數組的數據,從老數組的第0個下表,拷貝給新數組,新數組的第0個放,老數組有多長就拷貝多長,拷貝完成后覆蓋老數組,讓屬性指向新數組。
然后objs[index++]=val;賦值。
get:用下表得到存放的數據,給一個下表判斷是否大于等于index(存儲下標后加加),大于就說明下標越界了。
size:數組存放數據的長度。反饋出去。
數組的刪除:數組的刪除就是覆蓋。
比如我們申請一個數組,數組里面有“A”,“B”,“C”“D”,“E”,“F”,“G”。
假設我們要刪除下標為3里面的數據,就猶如把“E”,“F”,“G”,復制一份粘貼在從 下標3開始的數組內。刪除最后一個就直接數組長度減減。
判斷下標是否越界,是越界的話直接拋出越界異常。
下標沒越界的情況下詢問它是不是要刪除最后一個,是刪除最后一個把該下標等于空。數組長度是7的話,減減后就是6,也就是數組對應的下標6,應為數組下標從0開始。(因為java在沒有內存地址指向引用的情況下才會回收內存)
刪除第一個的話,就是用System.arrycopy();老數組從下標第i+1個開始拷貝,拷貝給當前自己數組第i個(要刪除的位置),拷貝長度是老數組長度減去-i-1的長度。
測試:移除第一個。
縮存儲容器:請問當前objs.length/index>=3,符合的話就新申請一個數組,數組長度是來數組的2分之一,然后將老數組的第0個開始拷貝給新數組的0個,老數組有多長就放多長。(長度能被3整除刪除一半的數組長度)
轉載于:https://my.oschina.net/kaige123/blog/2052898
總結
以上是生活随笔為你收集整理的JavaSE—集合框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NFS应用场景及环境搭建
- 下一篇: 如何实现弹性架构