最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于java中集合的概念(詳解)

 更新時間:2017年09月12日 08:58:20   作者:翊風(fēng)  
下面小編就為大家?guī)硪黄趈ava中集合的概念(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1.集合是儲存對象的,長度可變,可以封裝不同的對象

2.迭代器: 其實就是取出元素的方式(只能判斷,取出,移除,無法增加)

就是把取出方式定義在集合內(nèi)部,這樣取出方式就可以直接訪問集合內(nèi)部的元素,那么取出方式就被定義成了內(nèi)部類.

二每一個容器的數(shù)據(jù)結(jié)構(gòu)不同,所以取出的動作細節(jié)也不一樣.但是都有共性內(nèi)容判斷和取出,那么可以將共性提取,這些內(nèi)部類都符合一個規(guī)則Iterator

Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

另一種是

for(Iterator it = it.iterator(); it.hasNext();){
System.out.printin(it.next());}

Collection:

(1).List:元素是有序的,元素可以重復(fù).因為改集合體系有索引.

!--ArrayList:底層的數(shù)據(jù)結(jié)構(gòu)使用的是數(shù)組結(jié)構(gòu) ,特點:查詢速度快,但是增刪慢.線程不同步

!--LinkedList:底層使用的是;鏈表數(shù)據(jù)結(jié)構(gòu),特點:增刪速度快,查尋速度慢.

!--Vector:底層的數(shù)據(jù)結(jié)構(gòu)使用的是數(shù)組結(jié)構(gòu) ,.線程同步,速度慢,被ArrayList替代l

list:特有方法,凡是可以操作角標(biāo)的方法都是該體系特有的方法

增:add(index,element); addAll(index,Collection);

刪:remove(index);

改:set(index,element);

查:get(index); subList(from,to); ListIterator();(重點)

注意:判斷同一對象,equals方法

public boolean equals(Object obj){
if(!(obj instanceof Person))

return false;
Person p=new Person();

return this.name.equals(p.name)&&this.age==p.age;

}

(2). Set:元素是無序的(元素存入和取出的順序是不一定一致的),不可以重復(fù)

!--HashSet:底層數(shù)據(jù)結(jié)構(gòu)是哈希表

HashSet使如何保證元素唯一性的呢?

是通過元素的兩個方法,hashcode和equals來完成

如果元素的HashCode相同才會判斷equals是否為true,反の,不會調(diào)用

對于判斷元素是否存在,以及刪除等操作,依賴的方法是元素的hashcode和equals方法

!--TreeSet:

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

1.toArray()方法:是遍歷用的(把集合轉(zhuǎn)變?yōu)閿?shù)組)

public class ToArray {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
 
Object[] obj=c.toArray();
for(int x=0;x < obj.length;x++){
System.out.println(obj[x]);
}
}
}

1.1asList()方法,把數(shù)組轉(zhuǎn)變?yōu)榧?/strong>

//定義一個數(shù)組
//String[] s={"hello","world","java"};
//List<String> list=Arrays.asList(s);
//直接引用
List<String> list=Arrays.asList("hello","world");
for(String s1:list){
System.out.println(s1);
}

注意:雖然他可以把數(shù)組轉(zhuǎn)變成集合,但是本質(zhì)是數(shù)組,所以他的長度不能改變,不能增刪

2.數(shù)組長度是length方法,字符串的長度是length(),集合求長度的方法是size.

3. Iterator迭代器是集合的特有遍歷方法

while方法:(習(xí)慣用法)

Iterator it=list.iterator();//list是集合
while(it.hasNext()){ //判斷是否有下一個數(shù)據(jù)
System.out.println(it.next());
}

for循環(huán)方法:(效率高,it用完就是垃圾)

for(Iterator it=c.iterator();it.hasNext();){
System.out.println(it.next());
}

注意:不能連續(xù)it.next(),使用一次就換一個對象

4.list集合特有的遍歷方法:就是size和get()的結(jié)合

for(int x=0; x<list.size();x++){
System.out.println(list.get(x));
}

5.list特有的迭代器

ListIterator<String> lit=list.listIterator();
while(lit.hasNext()){
System.out.println((String)lit.next());
}
while(lit.hasPrevious()){
System.out.println((String)lit.previous());
}

注意:ListIterator可以實現(xiàn)逆向遍歷,但是必須現(xiàn)正向遍歷,否則無意義

6.HashTable和HashMap的區(qū)別

HashTable:線程安全,效率低,不允許null建和null值.

HashMap:線程不安全,效率高,允許null建和null值.

7.Collection和Collections的區(qū)別?

Collection:是單列集合的頂層接口,有子接口List和Set

Collections:是針對集合操作的工具類,有對集合進行排序和二分查找的方法

8.二分查找找不到,返回 -(最大索引+1)

以上這篇基于java中集合的概念(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java設(shè)計模塊系列之書店管理系統(tǒng)單機版(一)

    Java設(shè)計模塊系列之書店管理系統(tǒng)單機版(一)

    這篇文章主要為大家詳細介紹了Java單機版的書店管理系統(tǒng)設(shè)計模塊和思想第一章,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Java String保存字符串的機制

    Java String保存字符串的機制

    Java中字符串以什么格式來存儲?Java 中的 Unicode 字符串會按照 Latin1或者 UTF16 的編碼格式保存在 String 中,本文就詳細的介紹了一下,感興趣的可以了解一下
    2021-05-05
  • @Transactional和@DS怎樣在事務(wù)中切換數(shù)據(jù)源

    @Transactional和@DS怎樣在事務(wù)中切換數(shù)據(jù)源

    這篇文章主要介紹了@Transactional和@DS怎樣在事務(wù)中切換數(shù)據(jù)源問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java實現(xiàn)快速將HTML表格轉(zhuǎn)換成Excel

    Java實現(xiàn)快速將HTML表格轉(zhuǎn)換成Excel

    這篇文章主要為大家詳細介紹一種使用Java的快速將Web中表格轉(zhuǎn)換成Excel的方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • activiti實現(xiàn)員工請假流程解析

    activiti實現(xiàn)員工請假流程解析

    這篇文章主要介紹了activiti實現(xiàn)員工請假流程解析,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • java項目中多線程使用場景與實現(xiàn)方式詳解

    java項目中多線程使用場景與實現(xiàn)方式詳解

    在項目中,多線程的使用非常廣泛,主要用于提高程序的并發(fā)性和響應(yīng)速度,本文為大家整理了一些常見的多線程使用場景以及相應(yīng)的實現(xiàn)方式,希望對大家有一定的幫助
    2025-04-04
  • Java8中的默認方法(面試者必看)

    Java8中的默認方法(面試者必看)

    這篇文章主要介紹了Java8中的默認方法(面試者必看),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 使用Spring注解@EventListener實現(xiàn)監(jiān)聽原理

    使用Spring注解@EventListener實現(xiàn)監(jiān)聽原理

    這篇文章主要介紹了使用Spring注解@EventListener實現(xiàn)監(jiān)聽原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 深入理解Java Socket通信

    深入理解Java Socket通信

    本篇文章主要介紹了深入理解Java Socket,Java中的網(wǎng)絡(luò)通信是通過Socket實現(xiàn)的,Socket分為ServerSocket和Socket兩大類,有興趣的可以了解一下
    2017-02-02
  • 解決Weblogic部署war找不到spring配置文件的問題

    解決Weblogic部署war找不到spring配置文件的問題

    這篇文章主要介紹了解決Weblogic部署war找不到spring配置文件的問題,具有很好的參考價值,希望對大家有所幫助。
    2021-07-07

最新評論

承德市| 鄂州市| 莱州市| 抚远县| 六枝特区| 中超| 溧水县| 星子县| 高唐县| 望都县| 阳高县| 迁西县| 湾仔区| 内丘县| 伽师县| 水富县| 麻栗坡县| 钟山县| 诸城市| 惠州市| 奉新县| 额尔古纳市| 岳普湖县| 建阳市| 凌海市| 玉树县| 德江县| 达孜县| 泰来县| 荔波县| 怀仁县| 温泉县| 烟台市| 阿克陶县| 独山县| 杨浦区| 于田县| 台前县| 乌鲁木齐县| 夏邑县| 东乌|