日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java修改list中对象的值_Java中List集合的一点总结

發(fā)布時間:2024/7/19 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java修改list中对象的值_Java中List集合的一点总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么要用接口引用指向?qū)崿F(xiàn)類的對象?

這種寫法其實java多態(tài)的表現(xiàn)形式

多態(tài)的定義:

指允許不同類的對象對同一消息做出響應(yīng)。

即同一消息可以根據(jù)發(fā)送對象的不同而采用多種不同的行為方式。

(發(fā)送消息就是函數(shù)調(diào)用

List list;是在棧區(qū)開辟一個空間放list引用,并沒有創(chuàng)建對象所以不知道ArrayList還是LinkedList

當(dāng)你list= new ArrayList(); 就創(chuàng)建了ArrayList對象。

并且把開始創(chuàng)建的list引用指向這個對象ArrayList和LinkedList都是List的實現(xiàn)類。

為什么一般都使用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢?

?

問題就在于List有多個實現(xiàn)類,如 LinkedList或者Vector等等,現(xiàn)在你用的是ArrayList,

也許哪一天你需要換成其它的實現(xiàn)類呢?,這時你只要改變這一行就行了:

List list = new LinkedList(); 其它使用了list地方的代碼根本不需要改動。

假設(shè)你開始用 ArrayList alist = new ArrayList(),

這下你有的改了,特別是如果你使用了 ArrayList特有的方法和屬性。

,如果沒有特別需求的話,最好使用List list = new LinkedList(); ,便于程序代碼的重構(gòu).

這就是面向接口編程的好處

注意事項

list只能使ArrayList中已經(jīng)實現(xiàn)了的List接口中的方法

,ArrayList中那些自己的、沒有在List接口定義的方法是不可以被訪問到的

list.add()

其實是List接口的方法

但是調(diào)用ArrayList的方法如 clone()方法是調(diào)用不到的

ArrayList源碼分析:

1.add(int index ,Object obj):首先判斷是否越界?數(shù)組拷貝的原理;把index 拷貝到index+1,size-1

是拷貝長度,將元素添加到索引為index的位置上,元素的個數(shù)+1

2.get(int index):根據(jù)索引獲取元素對象,調(diào)用elementDate(index)方法:在Object類型的數(shù)組中

根據(jù)索引取出元素對象

3.size():每次添加size+1

4.isEmpty():判斷元素是否一個沒有返回布爾類型的值

5.set(int index):在指定索引位置修改我們對象:調(diào)用elementDate(index)方法:根據(jù)索引把元素調(diào)出

再設(shè)置新的元素到index位置,返回一個old元素后 設(shè)置成功

6.remove(int index):調(diào)用elementDate(index)方法:獲取元素,size-index-1?

7.clear():循環(huán)設(shè)置元素位置為null然后長度size設(shè)為0

8.iterator!!!

LinkedList:鏈表

Vector:創(chuàng)建的時候初始化容量就是10 和ArrayList的底層結(jié)構(gòu)相同都是Object類型的數(shù)組,ArrayList

在add元素的時候才會初始化容量 擴(kuò)容方式 Arrays擴(kuò)容每次0.5倍 Vector每次擴(kuò)容1倍

ArraysList線程非同步(jdk1.2)是Vector(jdk1.0)安全性高線程同步的優(yōu)化

總結(jié)

以上是生活随笔為你收集整理的java修改list中对象的值_Java中List集合的一点总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。