【Java學習筆記八】包裝類和vector

包裝類

在Java語言中,每一種基本的數據類型都有相應的對象類型,稱為他們基本類型的包裝類(包裹類)。
字節byte:Byte、短整數型short:Short
標準整數型int:Integer、長整數型long:Long
單精度實數型float:Float、雙精度實數型double:Double
布爾型boolean:Boolean、字符型char:Character、無類型void:Void

在Java語言系統中,定義有一些數據集合(組合)類(接口),它們主要包含在java.util系統包中,如向量類Vector、接口List和Set等.
這些類和接口中的數據成員(元素)只允許保存對象類型,不允許保存基本的數據類型

一般情況下,將基本數據類型封裝為包裝類對象,可以通過包裝類的構造函數。從包裝類對象得到基本數據類型,可以通過包裝類對象的xxxValue函數,高版本的JDK中也可以直接賦值.

簡單數據類型和包裝類的自動轉換, 能夠把常量直接賦值給對應的包裝類,或把包裝類直接賦值給簡單變量

每個包裝類同樣都繼承了系統基類java.lang.Object,重新定義了boolean equals(Object obj)成員函數和String toString()成員函數。equals()用來比較當前調用對象this與參數對象obj是否相等,實際上是比較它們的成員值是否相等,若是則返回true,否則返回false。當輸出一個包裝類對象時,將自動調用它的**toString()**成員函數,輸出調用該函數所返回的字符串,實際上在每個包裝類中定義的toString()成員函數,返回的是包裝類的值所轉換而成的字符串

每個包裝類同樣都實現了系統提供的用來比較大小的接口Comparable,實現了該接口中定義的抽象成員函數int compareTo(Object obj),當調用對象this的值大于參數對象obj的值時返回正數,小于時返回負數,相等時返回0。

進行包裝類對象大小的比較和判斷是否相等,可以調用相應的成員函數,也可以直接使用關系運算符進行比較。

向量類Vector

在Java中有許多與數據集合有關的接口及類,包含在由系統提供的java.util包中。
向量類(Vector)是實現了集合Collection接口和List接口的的具體類。

同數組類似,向量類可以存儲數據,不同的地方在于,向量類對象的元素類型必須是類類型,而不能時簡單的數據類型。數據的元素類型既可以是類類型也可以是基本數據類型。

向量對象的長度可以隨著插入數據而自動增加。但是數組的長度是固定的。

訪問數組元素通過下標運算符,訪問向量類對象中的元素通過向量類中定義的成員函數。

Vector<元素類>對象名= new Vector<元素類>();

常用成員函數:

  • boolean add(E obj);向向量末尾插入一個元素obj,E表示元素類型
  • void add(int index, E obj)向向量中下標為index的位置插入一個元素obj,該位置及后面位置的所有元素均后移一個位置
  • int size();返回向量中當前保存的元素個數(向量長度)
  • E get(int index);返回向量中下標為index的元素值
  • E set(int index, E obj);把下標為index的元素值修改為obj的值
  • boolean remove(E obj)刪除向量中與obj值相同的第一個元素,其后的所有元素值前移,刪除成功返回真,否則返回假。
  • E remove(int index)刪除向量中下標為index的元素,其后的所有元素值前移,刪除成功返回該元素值,否則返回空值
  • boolean contains(E obj)判斷obj是否存在于當前向量中,若存在則返回真,否則返回假
  • void clear();刪除向量中的所有元素,使之變為一個空向量,此時向量長度size()的值為0

for循環的簡化形式

  for(<元素類型> <變量名> : <數組或集合對象名>) <循環體>

其中的元素類型就是數組或者向量的元素的數據類型,變量名就是用來遍歷的元素,冒號右面就是數組或者向量名。我們可以在循環體中操作變量,這樣就可以實現對所有元素進行操作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383804.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux C++線程池實例

http://www.cnblogs.com/danxi/p/6636095.html 想做一個多線程服務器測試程序&#xff0c;因此參考了github的一些實例&#xff0c;然后自己動手寫了類似的代碼來加深理解。 目前了解的線程池實現有2種思路&#xff1a; 第一種&#xff1a; 主進程創建一定數量的線程&#xff0…

Java編寫簡單的自定義異常類

除了系統中自己帶的異常&#xff0c;我們也可以自己寫一些簡單的異常類來幫助我們處理問題。 所有的異常命名都是以Exception結尾&#xff0c;并且都是Exception的子類。 假設我們要編寫一個人類的類&#xff0c;為了判斷年齡的輸入是否合法&#xff0c;我們編寫了一個名為Il…

shared_ptr簡介以及常見問題

http://blog.csdn.net/stelalala/article/details/19993425 本文中的shared_ptr以vs2010中的std::tr1::shared_ptr作為研究對象。可能和boost中的有些許差異&#xff0c;特此說明。 基本功能 shared_ptr提供了一個管理內存的簡單有效的方法。shared_ptr能在以下方面給開發提供便…

【Java學習筆記九】多線程

程序&#xff1a;計算機指令的集合&#xff0c;它以文件的形式存儲在磁盤上&#xff0c;是應用程序執行的藍本。 進程&#xff1a;是一個程序在其自身的地址空間中的一次執行活動。進程是資源申請、調度和獨立運行的單位&#xff0c;因此&#xff0c;它使用系統中的運行資源。而…

【C++11新特性】 C++11智能指針之weak_ptr

http://blog.csdn.net/xiejingfa/article/details/50772571 原創作品&#xff0c;轉載請標明&#xff1a;http://blog.csdn.net/Xiejingfa/article/details/50772571 如題&#xff0c;我們今天要講的是C11引入的三種智能指針中的最后一個&#xff1a;weak_ptr。在學習weak_ptr之…

【C++學習筆記四】運算符重載

當調用一個重載函數和重載運算符時&#xff0c;編譯器通過把您所使用的參數類型和定義中的參數類型相比較&#xff0c;巨鼎選用最合適的定義。&#xff08;重載決策&#xff09; 重載運算符時帶有特殊名稱的函數&#xff0c;函數名是由關鍵字operator和其后要重載的運算符符號…

【C++11新特性】 C++11智能指針之unique_ptr

原創作品&#xff0c;轉載請標明&#xff1a;http://blog.csdn.net/Xiejingfa/article/details/50759210 在前面一篇文章中&#xff0c;我們了解了C11中引入的智能指針之一shared_ptr&#xff0c;今天&#xff0c;我們來介紹一下另一種智能指針unique_ptr。 unique_ptr介紹 uni…

C++派生類對象和基類對象賦值

在C中&#xff0c;我們允許 將派生類對象賦給基類對象。&#xff08;不允許將基類對象賦給派生類對象&#xff09; 只會將基類對象成員賦值用基類指針指向派生類對象。&#xff08;不允許用派生類指針指向基類對象&#xff09; 基類指針只能操作基類中的成員基類引用作為派生類…

【C++11新特性】 C++11智能指針之shared_ptr

http://blog.csdn.net/Xiejingfa/article/details/50750037 原創作品&#xff0c;轉載請標明&#xff1a;http://blog.csdn.net/Xiejingfa/article/details/50750037 C中的智能指針首先出現在“準”標準庫boost中。隨著使用的人越來越多&#xff0c;為了讓開發人員更方便、更安…

C++(純)虛函數重寫時訪問權限更改問題

我們知道在Java中是自動實現多態的&#xff0c;Java中規定重寫的方法的訪問權限不能縮小。那么在C中我們實現多態的時候是否可以更改&#xff08;縮小&#xff09;訪問權限呢&#xff1f; 經過測試&#xff0c;得到的答案如下&#xff1a;如果用基類指針指向派生類對象實現多態…

C++ — 智能指針的簡單實現以及循環引用問題

http://blog.csdn.net/dawn_sf/article/details/70168930 智能指針 ____________________________________________________ 今天我們來看一個高大上的東西&#xff0c;它叫智能指針。 哇這個名字聽起來都智能的不得了&#xff0c;其實等你了解它你一定會有一點失望的。。。。因…

C++(靜態)(常量)數據進行初始化問題以及靜態變量析構

在C11標準以前我們都不可以在類中對數據成員初始化&#xff0c;僅能在構造函數中進行初始化&#xff1a; class A {int a,b; double c; string d;A():a(1),b(2),c(3),d(""){} };在C11標準以后我們可以在類中對非靜態成員進行初始化。實際上的機制是在調用構造函數的…

C++this指針的用法

參考博客&#xff1a;https://www.cnblogs.com/zhengfa-af/p/8082959.html 在 訪問對象的非靜態成員時會隱式傳遞一個參數&#xff0c;即對象本身的指針&#xff0c;這個指針名為this。 例如&#xff1a; class A {int a1;public:A(){}void GetA(int a){cout<<this-&g…

C++開發者都應該使用的10個C++11特性

http://blog.jobbole.com/44015/ 感謝馮上&#xff08;治不好你我就不是獸醫 &#xff09;的熱心翻譯。如果其他朋友也有不錯的原創或譯文&#xff0c;可以嘗試推薦給伯樂在線。】 在C11新標準中&#xff0c;語言本身和標準庫都增加了很多新內容&#xff0c;本文只涉及了一些皮…

C++不能被聲明為虛函數

虛函數是為了實現多態&#xff0c;但是顯然并不是所有函數都可以聲明為虛函數的。 不能被聲明為虛函數的函數有兩類&#xff1a; 不能被繼承的函數不能被重寫的函數 因此&#xff0c;這些函數都不能被聲明為虛函數 普通函數構造函數 如果構造函數定義為虛函數&#xff0c;則…

類的聲明與定義

類的前向聲明&#xff1a; class A;在聲明之后&#xff0c;定義之前&#xff0c;類A是一個不完全類型&#xff0c;即知道A是一個類&#xff0c;但是不知道包含哪些成員。不完全類型只能以有限方式使用&#xff0c;不能定義該類型的對象&#xff0c;不完全類型只能用于定義指向…

shared_ptr的一些尷尬

http://blog.csdn.net/henan_lujun/article/details/8984543 shared_ptr在boost庫中已經有多年了&#xff0c;C11又為其正名&#xff0c;把他引入了STL庫&#xff0c;放到了std的下面&#xff0c;可見其頗有用武之地&#xff1b;但是shared_ptr是萬能的嗎&#xff1f;有沒有什…

C++轉換構造函數和類型轉換函數

參考博客&#xff1a;https://blog.csdn.net/feiyanaffection/article/details/79183340 隱式類型轉換 如果不同類型的數據在一起操作的時候編譯器會自動進行一個數據類型轉換。例如常用的基本數據類型有如下類型轉換關系&#xff1a; 轉換構造函數 構造函數有且僅有一個參數…

C++總結8——shared_ptr和weak_ptr智能指針

http://blog.csdn.net/wendy_keeping/article/details/75268687 智能指針的提出&#xff1a;智能指針是存儲指向動態分配對象指針的類&#xff0c;用于生存期控制。能夠確保正確銷毀動態分配的內存&#xff0c;防止內存泄露。 1.智能指針的分類&#xff1a; 不帶引用計數的智能…

C++析構函數執行順序

今天發現主程序中有多個對象時析構函數的執行順序不是對象定義的順序&#xff0c;而是對象定義順序反過來。 思考了一下&#xff0c;結合之前繼承、成員對象等的析構函數執行的順序&#xff0c;我覺得析構函數執行的順序為&#xff1a;構造函數的順序反過來&#xff0c;可能是…