基本數據類型對象包裝類
想要對基本類型數據進行更多的操作,最方便的方式就是將其封裝成對象
因爲在對象描述中就可以定義更多的屬性和行爲對該基本類型數據進行操作
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Charater
boolean Boolean
基本類型變成對象的好處:
可以將基本數據和字符串之間進行相互轉換
Integer.MAX_VALUE 表示int類型的最大值
基本類型數據——》字符串
1, 基本數據類型包裝類中的方法static String toString(基本類型);
2, String類中的方法staticString valueOf(基本類型)
3, 基本類型數據+“”
重點掌握
字符串——》基本類型數據
基本類型 參數,字符串
基本類型 parse基本類型類名(是基本類型格式的字符串)
在八個基本類型對象包裝類中只有一個對象沒有parse方法 Character
Integer 涉及到進制轉換問題
十進制——》其他進制轉換
二進制:toBinaryString(int);
十六進制:toHexString(int);
八進制:toOctalString(int);
toString Integer.toString(a,b);//a表示需要轉換的十進制數,b表示想要轉換的進制
Integer。toString(6,2); 結果爲110
其他進制——》十進制
int parseInt(intString,radix); intString表示要轉的其他進制,radix表示該進制數
Integer。parseInt(“110”,2); 結果爲6
基本數據類型值和基本類型數據對象之間的轉換
基本數據類型值——》基本類型數據對象
使用構造函數。既可以接收基本數值,也可以接收基本數值的字符串形式。
可以使用基本類型對象中的方法。Static Integer valueOf(int);
基本類型對象——》基本數據類型
int intValue();
如果兩個數被封裝成了對象該如何比較
對象想要進行比較,必須通過方法來完成,這個方法就是compareTo。而很多對象都可以比較。所以這個方法定義在Compareble接口中。想要對象具備比較功能,只要實現Compareble接口
基本數據類型對象包裝類JDK1.5後的新特性
新特性的出現無非就是簡化書寫
讓這些對象可以想操作基本數值一樣進行運算
Integer i=5;//i=new Integer(5);自動裝箱。自動完成了對象創建的動作。Integer.valueOf(5);
i=i/*.intValue()*/+5;//=右邊的i會先轉成基本數據值(自動拆箱),然後再和5進行加法運算
//=右邊運算完的結果,再次被自動裝箱變成Integer對象賦值給i
一旦簡化就有弊端:多具備一個值null。 使用自動裝箱時,建議進行null的健壯性判斷
Boolean b=true;和boolean=true;有什麼不同?
前者是自動裝箱後的對象引用
後者是基本數據
Integer m=127
Integer n=127
m==n 結果爲true
Integer m=128
Integer n=128
m==n 結果爲false
在jdk1.5後的新特性自動裝箱中
如果數值在byte類型範圍內,如果該對象數值重複出現,多個引用其實指向的是同一個
Integer對象。但如果超出byte範圍,都會生成新的Integer對象
Object x=5;Object類是不可以放基本數據類型的,此時是自動裝箱後的結果。5爲對象
集合類
集合:
1, 用於存儲對象的容器。
2, 該容器的長度是可變的
集合和數組的區別?
1,
集合的長度是可變的
數組的長度是固定的
2,
集合中只能存儲對象
數組中據可依存儲對象,又可以存儲基本類型的數值
3,
集合中存儲放對象可以是任意的
數組中只能存儲同一種類型的對象
集合框架的由來:
容器很多,因爲每個容器中的數據結構是不同的
數據結構:就是數據在容器中的存儲方式
如散裝雞蛋和品牌雞蛋的存儲方式
容器雖然因爲結構有不同,但是都具備着共性,可以不斷的向上抽取
就形成集合框架,該框架的頂層之一就是Collection接口
該接口中定義了集合框架中最共性的功能
最終使用的時候,其實使用的該框架最子類的對象
Collection中的方法:
1, 添加方法
boolean add(Object e):一次添加一個元素
boolean addAll(Collection) :將一個參數容器中的元素添加到當前容器中。
2, 刪除方法
boolean remove(object):刪除一個指定的對象
boolean removeAll(object):刪除指定Collection中和本Collection中相同的元素
void clear():直接將集合中的元素清空。
3, 判斷方法
boolean contains(object):是否包含指定元素
boolean contains(Collection):是否包含指定容器中的元素
boolean isEmpty();是否有元素。
4, 獲取元素個數
int size():獲取元素有幾個
5, 取交集
booleanretainAll(collection):保留和指定Collection集合中相同的元素。不相同的元素會被刪除
6, 將集合轉成數組
Object[] toArray();
7, 取出元素的方法
Iterator iterator();
迭代器:取出集合中元素的方式的一個對象。對象本身就內置在容器中。
通過iterator()方法來完成。該方法返回一個Iterator類型對象。
迭代器接口出項:將每一個容器中的取出方式進行了封裝。並對外暴露。
這樣無論是什麼容器或者數據結構,只要內部取出方式實現了Iterator接口,都可以通過該接口取出這些容器中的元素。
它的出現,將容器的取出方式和容器的數據結構相分離,降低了耦合性。
而取出方式因爲直接在訪問容器中的元素,並依賴具體的數據結構,所以被定義在了容器中。通過內部類來實現Iterator接口。
大型遊戲機中抓布娃娃的遊戲機中的夾子。就是那個迭代器
只要是Collection集合中的容器,迭代器是通用取出方式。
迭代器的使用
Iterator it=coll.iterator();
While(it.hasNext())
{
System.out.println(it.next());
}
將while()改成for循環結構。開發的時候建議寫for
for(Iterator it=coll.iterator();it.hasNext;)
{
System.out.println(it.next());
}
結合的一些小細節
創建一個集合容器。其實也是一個對象
這個對象中存儲着特定結構可以對對象進行存儲。
1, 存儲時,add可以接收任意類型的對象因爲參數類型是Object
所以對象元素存入時都被提升爲了Object
2, 其實在集合中真正存儲都是對象的引用。
coll.add(5);
等同於coll.add(Integer.valueOf());自動裝箱 拆箱intValue();
用迭代器取出時,其實取出的也是引用
一般開發時,最常見的就是往集合存儲自定義對象。
1, 對自定義對象進行描述
存儲時,都被提升爲了Object。
取出時如果要使用自定義對象的特有方法,一定要進行向下轉型
注意事項:在迭代時,循環中只要有一個next()即可