久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Arrays

 伊朗核心 2016-07-30

用于操作數(shù)組對象的工具類,,里面都是靜態(tài)方法,。

asList方法將數(shù)組轉(zhuǎn)換成list集合。

String[] arr = {"abc","kk","qq"};

List<String> list = Arrays.asList(arr);//arr數(shù)組轉(zhuǎn)成list集合,。

將數(shù)組轉(zhuǎn)換成集合,,有什么好處呢?用aslist方法,,將數(shù)組變成集合,;

可以通過list集合中的方法來操作數(shù)組中的元素:isEmpty()contains,、indexOf,、set

注意(局限性):數(shù)組是固定長度,,不可以使用集合對象增加或者刪除等,,會改變數(shù)組長度的功能方法。比如add,、remove,、clear。(會報不支持操作異常UnsupportedOperationException),;

如果數(shù)組中存儲的引用數(shù)據(jù)類型,,直接作為集合的元素可以直接用集合方法操作。

如果數(shù)組中存儲的是基本數(shù)據(jù)類型,,asList會將數(shù)組實體作為集合元素存在,。

 

集合變數(shù)組:用的是Collection接口中的方法:toArray();

如果給toArray傳遞的指定類型的數(shù)據(jù)長度小于了集合的size,那么toArray方法,,會自定再創(chuàng)建一個該類型的數(shù)據(jù),,長度為集合的size

    如果傳遞的指定的類型的數(shù)組的長度大于了集合的size,,那么toArray方法,,就不會創(chuàng)建新數(shù)組,直接使用該數(shù)組即可,,并將集合中的元素存儲到數(shù)組中,,其他為存儲元素的位置默認值null,。

    所以,在傳遞指定類型數(shù)組時,,最好的方式就是指定的長度和size相等的數(shù)組,。

將集合變成數(shù)組后有什么好處?限定了對集合中的元素進行增刪操作,,只要獲取這些元素即可,。

------------------------------------------------------------------------------------------------

Jdk5.0新特性:

Collectionjdk1.5以后,有了一個父接口Iterable,,這個接口的出現(xiàn)的將iterator方法進行抽取,,提高了擴展性。

--------------------------------------------------

增強for循環(huán):foreach語句,,foreach簡化了迭代器,。

格式:// 增強for循環(huán)括號里寫兩個參數(shù),第一個是聲明一個變量,,第二個就是需要迭代的容器

for( 元素類型 變量名 : Collection集合 & 數(shù)組 ) {

  …

}

高級for循環(huán)和傳統(tǒng)for循環(huán)的區(qū)別:

高級for循環(huán)在使用時,,必須要明確被遍歷的目標。這個目標,,可以是Collection集合或者數(shù)組,,如果遍歷Collection集合,在遍歷過程中還需要對元素進行操作,,比如刪除,,需要使用迭代器。

如果遍歷數(shù)組,,還需要對數(shù)組元素進行操作,,建議用傳統(tǒng)for循環(huán)因為可以定義角標通過角標操作元素。如果只為遍歷獲取,,可以簡化成高級for循環(huán),,它的出現(xiàn)為了簡化書寫。

 

高級for循環(huán)可以遍歷map集合嗎,?不可以,。但是可以將map轉(zhuǎn)成set后再使用foreach語句。

 

1),、作用:對存儲對象的容器進行迭代: 數(shù)組  collection   map

2),、增強for循環(huán)迭代數(shù)組:

String [] arr = {"a", "b", "c"};//數(shù)組的靜態(tài)定義方式,只試用于數(shù)組首次定義的時候

for(String s : arr) {

  System.out.println(s); 

}

3),、單列集合 Collection

List list = new ArrayList();

list.add("aaa");

// 增強for循環(huán), 沒有使用泛型的集合能不能使用增強for循環(huán)迭代,?能

for(Object obj : list) {

  String s = (String) obj;

  System.out.println(s);

}

4)、雙列集合 Map

Map map = new HashMap();

map.put("a", "aaa");

// 傳統(tǒng)方式:必須掌握這種方式

Set entrys = map.entrySet(); // 1.獲得所有的鍵值對Entry對象

iter = entrys.iterator(); // 2.迭代出所有的entry

while(iter.hasNext()) {

  Map.Entry entry = (Entry) iter.next();

  String key = (String) entry.getKey(); // 分別獲得keyvalue

  String value = (String) entry.getValue();

  System.out.println(key + "=" + value);

}

// 增強for循環(huán)迭代:原則上map集合是無法使用增強for循環(huán)來迭代的,因為增強for循環(huán)只能針對實現(xiàn)了Iterable接口的集合進行迭代,;Iterablejdk5中新定義的接口,,就一個方法iterator方法,只有實現(xiàn)了Iterable接口的類,,才能保證一定有iterator方法,,java有這樣的限定是因為增強for循環(huán)內(nèi)部還是用迭代器實現(xiàn)的,,而實際上,,我們可以通過某種方式來使用增強for循環(huán)。

for(Object obj : map.entrySet()) {

  Map.Entry entry = (Entry) obj;  // obj 依次表示Entry

  System.out.println(entry.getKey() + "=" + entry.getValue());

}

5),、集合迭代注意問題:在迭代集合的過程中,,不能對集合進行增刪操作(會報并發(fā)訪問異常);可以用迭代器的方法進行操作(子類listIterator:有增刪的方法),。

6),、增強for循環(huán)注意問題:在使用增強for循環(huán)時,不能對元素進行賦值,;

int[] arr = {1,2,3};

for(int num : arr) {

  num = 0; //不能改變數(shù)組的值

}

System.out.println(arr[1]); //2

--------------------------------------------------

可變參數(shù)(...:用到函數(shù)的參數(shù)上,,當要操作的同一個類型元素個數(shù)不確定的時候,可是用這個方式,,這個參數(shù)可以接受任意個數(shù)的同一類型的數(shù)據(jù),。

 

和以前接收數(shù)組不一樣的是:

以前定義數(shù)組類型,需要先創(chuàng)建一個數(shù)組對象,,再將這個數(shù)組對象作為參數(shù)傳遞給函數(shù)?,F(xiàn)在,直接將數(shù)組中的元素作為參數(shù)傳遞即可,。底層其實是將這些元素進行數(shù)組的封裝,,而這個封裝動作,是在底層完成的,,被隱藏了,。所以簡化了用戶的書寫,少了調(diào)用者定義數(shù)組的動作,。

如果在參數(shù)列表中使用了可變參數(shù),,可變參數(shù)必須定義在參數(shù)列表結(jié)尾(也就是必須是最后一個參數(shù),否則編譯會失敗,。),。

如果要獲取多個int數(shù)的和呢?可以使用將多個int數(shù)封裝到數(shù)組中,,直接對數(shù)組求和即可,。

---------------------------------------------------

靜態(tài)導入:導入了類中的所有靜態(tài)成員,簡化靜態(tài)成員的書寫。

import static java.util.Collections.*;  //導入了Collections類中的所有靜態(tài)成員

---------------------------------------------------

枚舉:關(guān)鍵字 enum

問題:對象的某個屬性的值不能是任意的,,必須為固定的一組取值其中的某一個,;

解決辦法:

1)、在setGrade方法中做判斷,,不符合格式要求就拋出異常,;

2)、直接限定用戶的選擇,,通過自定義類模擬枚舉的方式來限定用戶的輸入,,寫一個Grade類,私有構(gòu)造函數(shù),,對外提供5個靜態(tài)的常量表示類的實例,;

3)jdk5中新定義了枚舉類型,,專門用于解決此類問題,;

4)、枚舉就是一個特殊的java類,,可以定義屬性,、方法、構(gòu)造函數(shù),、實現(xiàn)接口,、繼承類;

------------------------------------------------------------------------------

自動拆裝箱:java中數(shù)據(jù)類型分為兩種 基本數(shù)據(jù)類型   引用數(shù)據(jù)類型(對象)

java程序中所有的數(shù)據(jù)都需要當做對象來處理,,針對8種基本數(shù)據(jù)類型提供了包裝類,,如下:

int --> Integer

byte --> Byte

short --> Short

long --> Long

char --> Character

double --> Double

float --> Float

boolean --> Boolean

 

jdk5以前基本數(shù)據(jù)類型和包裝類之間需要互轉(zhuǎn):

基本---引用   Integer x = new Integer(x);

引用---基本   int num = x.intValue();

1)Integer x = 1; x = x + 1;  經(jīng)歷了什么過程,?裝箱 à 拆箱 à 裝箱,;

2)、為了優(yōu)化,,虛擬機為包裝類提供了緩沖池,,Integer池的大小 -128~127 一個字節(jié)的大小

3),、String池:Java為了優(yōu)化字符串操作 提供了一個緩沖池,;

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多