成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JAVA學(xué)習(xí)之路 (十)集合

sutaking / 436人閱讀

摘要:集合中的集合是一種工具類,就像是容器,存儲(chǔ)任意數(shù)量的具有共同屬性的對(duì)象集合的作用在類的內(nèi)部,對(duì)數(shù)據(jù)進(jìn)行組織簡(jiǎn)單而快速的搜索大量數(shù)目的條目有的集合接口,提供了一系列排列有序的元素,并且可以在序列中進(jìn)行快速的插入和刪除有些集合接口,提供了映射關(guān)

集合
java中的集合: 是一種工具類,就像是容器,存儲(chǔ)任意數(shù)量的具有共同屬性的對(duì)象

集合的作用

1. 在類的內(nèi)部,對(duì)數(shù)據(jù)進(jìn)行組織
2. 簡(jiǎn)單而快速的搜索大量數(shù)目的條目
3. 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中進(jìn)行快速的插入和刪除
4. 有些集合接口,提供了映射關(guān)系,可以通過(guò)關(guān)鍵字key去快速的查找到對(duì)應(yīng)的唯一對(duì)象

集合和數(shù)組的區(qū)別

1. 數(shù)組的長(zhǎng)度是固定的,但是集合可變
2. 數(shù)組只能通過(guò)數(shù)組下標(biāo)查找,類型固定,而有的集合可以通過(guò)任意類型查找所映射的對(duì)象
java集合的框架

Collection 接口
Collection接口 是List、Set、Queue的父接口,

List接口之ArrayList

1. List是元素有序并且可重復(fù)的集合,被稱為是序列
2. List可以精準(zhǔn)控制每個(gè)元素的插入和刪除
3. ArrayList --數(shù)組序列,是一個(gè)重要實(shí)現(xiàn)類
4. ArrayList底層是數(shù)組實(shí)現(xiàn)的

ArrayList的增刪改查

package com.collection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
 * 備選課程類
 * @author zjj
 * ArrayList的增刪改查
 *
 */
public class ListTest {
    private List coursesList; // 備選課程列表
    
    
    public ListTest() {
        this.coursesList = new ArrayList();
    }


    public List getCoursesList() {
        return coursesList;
    }


    public void setCoursesList(List coursesList) {
        this.coursesList = coursesList;
    }
    // 添加課程
    public void listAdd() {
        // 添加一個(gè)課程
        course c1 = new course("1", "c語(yǔ)言");
        coursesList.add(c1);
        course temp = (course)coursesList.get(0);
        System.out.println("添加了課程:"+temp.getId()+";"+temp.getName());
        
        
        course cr2=new course("2","數(shù)據(jù)結(jié)構(gòu)");
        coursesList.add(0,cr2);
        course temp2=(course)coursesList.get(1);
        System.out.println("添加了課程:"+temp2.getId()+";"+temp2.getName());
        /**course cr2=new course("2","C語(yǔ)言");
        coursesList.add(4,cr2);
        報(bào)錯(cuò),數(shù)組下標(biāo)越界*/ 
        
        // 添加一個(gè)數(shù)組進(jìn)去
        course [] course = {new course("3","離散"), new course("4","毛概")};
        coursesList.addAll(Arrays.asList(course)); 
        course temp3 = (course) coursesList.get(2);
        course temp4 = (course) coursesList.get(3);
        System.out.println("添加了課程:"+temp3.getId()+";"+temp3.getName());
        System.out.println("添加了課程:"+temp4.getId()+";"+temp4.getName());
        
        course [] course1 = {new course("5","網(wǎng)絡(luò)"), new course("6","信息")};
        coursesList.addAll(2,Arrays.asList(course1)); 
        course temp5 = (course) coursesList.get(2);
        course temp6 = (course) coursesList.get(3);
        System.out.println("添加了課程:"+temp5.getId()+";"+temp5.getName());
        System.out.println("添加了課程:"+temp6.getId()+";"+temp6.getName());
        
    }
    
    /**
     * for循環(huán)遍歷List
     */
    public void testGet() {
        int len = coursesList.size(); // 獲取到ArrayList的長(zhǎng)度
        System.out.println("=========================");
        for(int i = 0; i < len; i++) {
            course temp = (course) coursesList.get(i);
            System.out.println("添加了課程:"+temp.getId()+";"+temp.getName());
        }
        
    }
    /**
     * 通過(guò)迭代器來(lái)遍歷List
     */
    public void Listget() {
        Iterator it = coursesList.iterator(); // 迭代器方法
        System.out.println("==========迭代器===============");
        while(it.hasNext()) {
            course lt = (course) it.next();
            System.out.println("添加了課程:"+lt.getId()+";"+lt.getName());
        }
    }
    
    /**
     * 通過(guò)foreach遍歷
     */
    
    public void testForEach() {
        System.out.println("==========forEach循環(huán)===============");
        for(Object obj :coursesList) {
            course cr = (course) obj;
            System.out.println("添加了課程:"+cr.getId()+";"+cr.getName());
        }
    }
    
    /**
     * 修改課程
     */
    public void modify() {
        coursesList.set(2, new course("10", "修改的name"));
        
    }
    /**
     * 刪除課程
     */
    
    public void delete() {
        course cr = (course) coursesList.get(4);
        coursesList.remove(cr);
//        coursesList.remove(4); 效果同上
        
        // 同時(shí)刪除多個(gè)
        course [] courses = {(course) coursesList.get(1), (course) coursesList.get(2)};
        coursesList.removeAll(Arrays.asList(courses));
        
    }
    
}

泛型管理

1.集合中的元素是可以是任意類型的對(duì)象,如果把這個(gè)對(duì)象放入集合,則會(huì)忽略它的類別,而把他當(dāng)作是一個(gè)Object來(lái)處理,這也就是我們?yōu)槭裁葱枰M(jìn)行強(qiáng)制類型轉(zhuǎn)換為course的原因了

2.泛型則是規(guī)定了某一個(gè)集合中只能存放某些特定類型的對(duì)象,會(huì)在編譯期間進(jìn)行類型檢查,可以直接按照指定的類型獲取元素

package com.collection;

import java.util.ArrayList;
import java.util.List;

/**
 * 測(cè)試泛型
 * @author zjj
 *
 */
public class testGeneric {
    // 泛型就是在<>中寫(xiě)明規(guī)定的類型
    public List courseList;
    
    public testGeneric() {
        this.courseList = new ArrayList();
    }
    
    public void add () {
        course c = new course("1","語(yǔ)文");
        courseList.add(c);
    }
    
    public void forEach() {
        // 注意這里,我們可以直接使用course,不需要先寫(xiě)成Object,再?gòu)?qiáng)轉(zhuǎn)
        for(course c: courseList) {
            System.out.println("課程:" +c.getId()+";"+c.getName());
        }
    }
    
    public static void main(String [] args) {
        testGeneric d = new testGeneric();
        d.add();
        d.forEach();
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76773.html

相關(guān)文章

  • 我的阿里之路+Java面經(jīng)考點(diǎn)

    摘要:我的是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)。因?yàn)槲倚睦砗芮宄业哪繕?biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來(lái)的學(xué)習(xí)計(jì)劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)offer。然后五月懷著忐忑的心情開(kāi)始了螞蟻金...

    姘擱『 評(píng)論0 收藏0
  • 【全棧之路JAVA基礎(chǔ)課程一_JDK8大新特性(20190706v1.2)

    摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對(duì)一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。語(yǔ)法是,或者更一般的,要求構(gòu)造器方法是沒(méi)有參數(shù)靜態(tài)方法引用。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),...

    lcodecorex 評(píng)論0 收藏0
  • 【全棧之路JAVA基礎(chǔ)課程一_JDK8大新特性(20190706v1.2)

    摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對(duì)一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。語(yǔ)法是,或者更一般的,要求構(gòu)造器方法是沒(méi)有參數(shù)靜態(tài)方法引用。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),...

    VPointer 評(píng)論0 收藏0
  • 開(kāi)發(fā)之路(設(shè)計(jì)模式:迭代器模式上)

    摘要:感謝你看到這里,迭代器模式上部分到這里就結(jié)束了,本人文筆隨便,若有不足或錯(cuò)誤之處望給予指點(diǎn),度彎腰很快我會(huì)補(bǔ)全這個(gè)內(nèi)容,生命不息,編程不止參考書(shū)籍設(shè)計(jì)模式 有許多種方法可以把對(duì)象堆起來(lái)成為一個(gè)集合 好消息,當(dāng)?shù)氐牟蛷d和煎餅屋合并了,但是兩者實(shí)現(xiàn)的方式卻不同,這就造成了分歧。讓我們一起去看看把。showImg(https://segmentfault.com/img/bVV5sB?w=...

    Thanatos 評(píng)論0 收藏0
  • 【全棧之路JAVA基礎(chǔ)課程_JAVA虛擬機(jī)(20190706v1.1)

    摘要:虛擬機(jī)實(shí)現(xiàn)了語(yǔ)言最重要的特征平臺(tái)無(wú)關(guān)性。基本組成詳細(xì)框架步驟從操作系統(tǒng)的角度看來(lái),虛擬機(jī)人只是一個(gè)普通進(jìn)程。虛擬機(jī)能夠加載我們編寫(xiě)的文件食物。虛擬機(jī)中的執(zhí)行引擎腸胃用來(lái)執(zhí)行文件中的字節(jié)碼指令。虛擬機(jī)在執(zhí)行過(guò)程中,要分配內(nèi)存創(chuàng)建對(duì)象。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,...

    imccl 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<