国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java】ArrayList(集合)超詳解

這篇具有很好參考價(jià)值的文章主要介紹了【Java】ArrayList(集合)超詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.ArrayList

集合和數(shù)組的優(yōu)勢(shì)對(duì)比:

  1. 長度可變
  2. 添加數(shù)據(jù)的時(shí)候不需要考慮索引,默認(rèn)將數(shù)據(jù)添加到末尾

1.1ArrayList類概述

  • 什么是集合

    ? 提供一種存儲(chǔ)空間可變的存儲(chǔ)模型,存儲(chǔ)的數(shù)據(jù)容量可以發(fā)生改變

  • ArrayList集合的特點(diǎn)

    ? 底層是數(shù)組實(shí)現(xiàn)的,長度可以變化

  • 泛型的使用

    ? 用于約束集合中存儲(chǔ)元素的數(shù)據(jù)類型

1.2ArrayList類常用方法

1.2.1構(gòu)造方法
方法名 說明
public ArrayList() 創(chuàng)建一個(gè)空的集合對(duì)象
1.2.2成員方法
方法名 說明
public boolean remove(Object o) 刪除指定的元素,返回刪除是否成功
public E remove(int index) 刪除指定索引處的元素,返回被刪除的元素
public E set(int index,E element) 修改指定索引處的元素,返回被修改的元素
public E get(int index) 返回指定索引處的元素
public int size() 返回集合中的元素的個(gè)數(shù)
public boolean add(E e) 將指定的元素追加到此集合的末尾
public void add(int index,E element) 在此集合中的指定位置插入指定的元素
1.2.3示例代碼
public class ArrayListDemo02 {
    public static void main(String[] args) {
        //創(chuàng)建集合
        ArrayList<String> array = new ArrayList<String>();

        //添加元素
        array.add("hello");
        array.add("world");
        array.add("java");

        //public boolean remove(Object o):刪除指定的元素,返回刪除是否成功
//        System.out.println(array.remove("world"));
//        System.out.println(array.remove("javaee"));

        //public E remove(int index):刪除指定索引處的元素,返回被刪除的元素
//        System.out.println(array.remove(1));

        //IndexOutOfBoundsException
//        System.out.println(array.remove(3));

        //public E set(int index,E element):修改指定索引處的元素,返回被修改的元素
//        System.out.println(array.set(1,"javaee"));

        //IndexOutOfBoundsException
//        System.out.println(array.set(3,"javaee"));

        //public E get(int index):返回指定索引處的元素
//        System.out.println(array.get(0));
//        System.out.println(array.get(1));
//        System.out.println(array.get(2));
        //System.out.println(array.get(3)); //?????? 自己測(cè)試

        //public int size():返回集合中的元素的個(gè)數(shù)
        System.out.println(array.size());

        //輸出集合
        System.out.println("array:" + array);
    }
}

1.3ArrayList存儲(chǔ)字符串并遍歷

1.3.1案例需求

? 創(chuàng)建一個(gè)存儲(chǔ)字符串的集合,存儲(chǔ)3個(gè)字符串元素,使用程序?qū)崿F(xiàn)在控制臺(tái)遍歷該集合

1.3.2代碼實(shí)現(xiàn)
/*
    思路:
        1:創(chuàng)建集合對(duì)象
        2:往集合中添加字符串對(duì)象
        3:遍歷集合,首先要能夠獲取到集合中的每一個(gè)元素,這個(gè)通過get(int index)方法實(shí)現(xiàn)
        4:遍歷集合,其次要能夠獲取到集合的長度,這個(gè)通過size()方法實(shí)現(xiàn)
        5:遍歷集合的通用格式
 */
public class ArrayListTest01 {
    public static void main(String[] args) {
        //創(chuàng)建集合對(duì)象
        ArrayList<String> array = new ArrayList<String>();

        //往集合中添加字符串對(duì)象
        array.add("劉正風(fēng)");
        array.add("左冷禪");
        array.add("風(fēng)清揚(yáng)");

        //遍歷集合,其次要能夠獲取到集合的長度,這個(gè)通過size()方法實(shí)現(xiàn)
//        System.out.println(array.size());

        //遍歷集合的通用格式
        for(int i=0; i<array.size(); i++) {
            String s = array.get(i);
            System.out.println(s);
        }
    }
}

1.4ArrayList存儲(chǔ)學(xué)生對(duì)象并遍歷

1.4.1案例需求

? 創(chuàng)建一個(gè)存儲(chǔ)學(xué)生對(duì)象的集合,存儲(chǔ)3個(gè)學(xué)生對(duì)象,使用程序?qū)崿F(xiàn)在控制臺(tái)遍歷該集合

1.4.2代碼實(shí)現(xiàn)
/*
    思路:
        1:定義學(xué)生類
        2:創(chuàng)建集合對(duì)象
        3:創(chuàng)建學(xué)生對(duì)象
        4:添加學(xué)生對(duì)象到集合中
        5:遍歷集合,采用通用遍歷格式實(shí)現(xiàn)
 */
public class ArrayListTest02 {
    public static void main(String[] args) {
        //創(chuàng)建集合對(duì)象
        ArrayList<Student> array = new ArrayList<>();

        //創(chuàng)建學(xué)生對(duì)象
        Student s1 = new Student("林青霞", 30);
        Student s2 = new Student("風(fēng)清揚(yáng)", 33);
        Student s3 = new Student("張曼玉", 18);

        //添加學(xué)生對(duì)象到集合中
        array.add(s1);
        array.add(s2);
        array.add(s3);

        //遍歷集合,采用通用遍歷格式實(shí)現(xiàn)
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getName() + "," + s.getAge());
        }
    }
}

1.5ArrayList存儲(chǔ)學(xué)生對(duì)象并遍歷升級(jí)版

1.5.1案例需求

? 創(chuàng)建一個(gè)存儲(chǔ)學(xué)生對(duì)象的集合,存儲(chǔ)3個(gè)學(xué)生對(duì)象,使用程序?qū)崿F(xiàn)在控制臺(tái)遍歷該集合

? 學(xué)生的姓名和年齡來自于鍵盤錄入

1.5.2代碼實(shí)現(xiàn)
public class ArrayListTest {
    public static void main(String[] args) {
        //1.創(chuàng)建集合對(duì)象
        ArrayList<Student> list = new ArrayList<>();
        //2.鍵盤錄入數(shù)據(jù)并添加到集合中
        Scanner sc = new Scanner(System.in);
        for (int i = 1; i <= 3; i++) {
            //創(chuàng)建學(xué)生對(duì)象
            Student s = new Student();
            //鍵盤錄入學(xué)生信息
            System.out.println("請(qǐng)輸入第" + i + "個(gè)學(xué)生的姓名");
            String name = sc.next();
            System.out.println("請(qǐng)輸入第" + i + "個(gè)學(xué)生的年齡");
            int age = sc.nextInt();
            //把學(xué)生信息賦值給學(xué)生對(duì)象
            s.setName(name);
            s.setAge(age);
           //把學(xué)生對(duì)象添加到集合當(dāng)中
            list.add(s);
        }
        //遍歷
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName() + ", " + stu.getAge());
        }


    }
}

1.6 查找用戶是否存在

需求:

1,main方法中定義一個(gè)集合,存入三個(gè)用戶對(duì)象。

用戶屬性為:id,username,password

2,要求:定義一個(gè)方法,根據(jù)id查找對(duì)應(yīng)的學(xué)生信息。

如果存在,返回true

如果不存在,返回false

代碼示例:文章來源地址http://www.zghlxwxcb.cn/news/detail-419332.html

package com.itheima.test4;

import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        //1.創(chuàng)建集合
        ArrayList<User> list = new ArrayList<>();
        //2.添加用戶對(duì)象
        User u1 = new User("heima001","zhangsan","123456");
        User u2 = new User("heima002","lisi","1234");
        User u3 = new User("heima003","wangwu","12345");
        //3.添加元素
        list.add(u1);
        list.add(u2);
        list.add(u3);
        //3.根據(jù)id查找是否存在
        //調(diào)方法
        //如果調(diào)用本類中的方法,直接寫方法名就可以。
        //如果我要調(diào)用其他類中的方法,需要用對(duì)象去調(diào)用。
        boolean flag = contains(list, "heima004");
        System.out.println(flag);
    }

    //1.我要干嘛? 判斷id在集合中是否存在
    //2.需要什么? 集合  id
    //3.是否需要繼續(xù)使用?需要
    //寫在測(cè)試類中的方法,加static
    //寫在javabean類中的方法,不加static
    public static boolean contains(ArrayList<User> list, String id){
        for (int i = 0; i < list.size(); i++) {
            User u = list.get(i);
            String uid = u.getId();
            if(uid.equals(id)){
                return true;
            }
        }
        //當(dāng)集合里面所有的元素全部比較完畢了
        //如果此時(shí)還不存在,才能返回false
        return false;
    }
}

1.7 查找用戶的索引

需求:

1,main方法中定義一個(gè)集合,存入三個(gè)用戶對(duì)象。

用戶屬性為:id,username,password

2,要求:定義一個(gè)方法,根據(jù)id查找對(duì)應(yīng)的學(xué)生信息。

如果存在,返回索引

如果不存在,返回-1

代碼示例:

package com.itheima.test5;

import com.itheima.test4.User;

import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        //1.創(chuàng)建集合
        ArrayList<User> list = new ArrayList<>();
        //2.添加用戶對(duì)象
        User u1 = new User("heima001","zhangsan","123456");
        User u2 = new User("heima002","lisi","1234");
        User u3 = new User("heima003","wangwu","12345");
        //3.添加元素
        list.add(u1);
        list.add(u2);
        list.add(u3);

        //4.查詢索引
        int index = findIndex(list, "heima004");
        System.out.println(index);

    }

    //1.我要干嘛?查詢索引
    //2.需要什么?集合  id
    //3.是否需要繼續(xù)使用 需要返回值
    public static int findIndex(ArrayList<User> list, String id){
        for (int i = 0; i < list.size(); i++) {
            User u = list.get(i);
            String uid = u.getId();
            if(uid.equals(id)){
                return i;
            }
        }
        //如果循環(huán)結(jié)束還沒有找到
        return -1;
    }
    public static boolean contains(ArrayList<User> list, String id){
        int index = findIndex(list, id);
        if(index >= 0){
            return true;
        }else{
            return false;
        }
       // return  findIndex(list, id) >= 0;
    }
}

到了這里,關(guān)于【Java】ArrayList(集合)超詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java集合框架之ArrayList源碼分析

    ArrayList是Java提供的線性集合,本篇筆記將從源碼(java SE 17)的角度學(xué)習(xí)ArrayList: 什么是ArrayList? ArrayList底層數(shù)據(jù)結(jié)構(gòu)是怎么實(shí)現(xiàn)的? 作為一個(gè)容器,分析增刪改查的過程 ArrayList的擴(kuò)容機(jī)制 由ArrayList的定義可知,ArrayList繼承了AbstractList抽象類,實(shí)現(xiàn)了List、RandomAccess、Cloneabl

    2024年02月07日
    瀏覽(22)
  • Java:ArrayList集合、LinkedList(鏈表)集合的底層原理及應(yīng)用場景

    Java:ArrayList集合、LinkedList(鏈表)集合的底層原理及應(yīng)用場景

    入隊(duì) 出隊(duì) 壓棧(push),addFirst可以替換成push,官方專門為壓棧寫了push的API 出棧(pop),removeFirst可以替換成pop,官方專門為出棧寫了pop的API

    2024年02月12日
    瀏覽(50)
  • java源碼----集合系列1----ArrayList,linkedList

    java源碼----集合系列1----ArrayList,linkedList

    底層是一個(gè)object數(shù)組 Arraylist 是java里面Collection? 標(biāo)準(zhǔn)的一個(gè)集合,其 底層是一個(gè)object數(shù)組 。當(dāng)new一個(gè)空參的ArrayList的時(shí)候,會(huì)默認(rèn)生成一個(gè)空數(shù)組。 Arraylist上限是 Integer.MAX_VALUE - 8(Integer.MAX_VALUE? = ?2^31-1) ; 超過上限會(huì)報(bào)內(nèi)存溢出 這里為什么是Integer.MAX_VALUE-8? ,源碼上的解

    2024年02月03日
    瀏覽(28)
  • java集合框架(三)ArrayList常見方法的使用

    @[toc] ## 一、什么是ArrarList ArrayList是Java中的一個(gè)動(dòng)態(tài)數(shù)組類,可以根據(jù)實(shí)際需要自動(dòng)調(diào)整數(shù)組的大小。ArrayList是基于數(shù)組實(shí)現(xiàn)的,它內(nèi)部維護(hù)的是一個(gè)Object數(shù)組,默認(rèn)初始化容量為10,當(dāng)添加的元素個(gè)數(shù)超過了當(dāng)前容量時(shí),會(huì)自動(dòng)擴(kuò)容。 ArrayList也被廣泛用于Java中的集合框架,

    2024年02月05日
    瀏覽(20)
  • 【JAVA語言-第15話】集合框架(二)——List、ArrayList、LinkedList、Vector集合

    【JAVA語言-第15話】集合框架(二)——List、ArrayList、LinkedList、Vector集合

    目錄 List集合 1.1?概述 1.2 特點(diǎn) 1.3 常用方法 1.4?ArrayList集合 1.4.1 概述? 1.4.2 練習(xí) 1.5 LinkedList集合? 1.5.1 概述 1.5.2 特點(diǎn) 1.5.3 常用方法 1.5.4 練習(xí) 1.6?Vector類 1.6.1 概述 1.6.2 練習(xí) 1.7 List實(shí)現(xiàn)類的異同點(diǎn) ????????java.util.List: List是一個(gè)接口,它繼承自Collection接口。 常用的實(shí)現(xiàn)

    2024年01月25日
    瀏覽(22)
  • java基礎(chǔ) -02java集合之 List,AbstractList,ArrayList介紹

    java基礎(chǔ) -02java集合之 List,AbstractList,ArrayList介紹

    在正式List之前,我們先了解我們補(bǔ)充上篇Collection接口的拓展實(shí)現(xiàn),也就是說當(dāng)我我們需要實(shí)現(xiàn)一個(gè)不可修改的Collection的時(shí)候,我們只需要拓展某個(gè)類,也就是AbstractCollection這個(gè)類,他是Collection接口的骨干實(shí)現(xiàn),并以最大限度的實(shí)現(xiàn)了減少此接口所需要的工作; 如上兩圖進(jìn)行

    2024年01月20日
    瀏覽(23)
  • Java 集合中 ArrayList 的擴(kuò)容機(jī)制原理(面試+讀源碼)

    Java 集合中 ArrayList 的擴(kuò)容機(jī)制原理(面試+讀源碼)

    ? ?????????在 Java 中,ArrayList 內(nèi)部是通過一個(gè)數(shù)組來存儲(chǔ)元素的,是一個(gè)數(shù)組結(jié)構(gòu)的存儲(chǔ)容器。當(dāng)向一個(gè) ArrayList 中添加元素時(shí),如果當(dāng)前數(shù)組已經(jīng)滿了,就需要擴(kuò)容。? ? ? ? ? 集合的繼承關(guān)系圖? ( ArrayList 的擴(kuò)容機(jī)制原理?)? ????????面試官好,ArrayList 是一個(gè)數(shù)

    2024年02月07日
    瀏覽(26)
  • java數(shù)組ArrayList(存對(duì)象)

    java數(shù)組ArrayList(存對(duì)象)

    1、dade文件 2、AdminController文件

    2024年01月22日
    瀏覽(23)
  • 【Java集合類面試二十六】、介紹一下ArrayList的數(shù)據(jù)結(jié)構(gòu)?

    【Java集合類面試二十六】、介紹一下ArrayList的數(shù)據(jù)結(jié)構(gòu)?

    文章底部有個(gè)人公眾號(hào): 熱愛技術(shù)的小鄭 。主要分享開發(fā)知識(shí)、學(xué)習(xí)資料、畢業(yè)設(shè)計(jì)指導(dǎo)等。有興趣的可以關(guān)注一下。為何分享? 踩過的坑沒必要讓別人在再踩,自己復(fù)盤也能加深記憶。利己利人、所謂雙贏。 面試官:介紹一下ArrayList的數(shù)據(jù)結(jié)構(gòu)? 參考答案: ArrayList的底

    2024年02月08日
    瀏覽(17)
  • Java動(dòng)態(tài)數(shù)組實(shí)現(xiàn)----聊聊ArrayList

    Java動(dòng)態(tài)數(shù)組實(shí)現(xiàn)----聊聊ArrayList

    作為一名對(duì)技術(shù)充滿熱情的學(xué)習(xí)者,我一直以來都深刻地體會(huì)到知識(shí)的廣度和深度。在這個(gè)不斷演變的數(shù)字時(shí)代,我遠(yuǎn)非專家,而是一位不斷追求進(jìn)步的旅行者。通過這篇博客,我想分享我在某個(gè)領(lǐng)域的學(xué)習(xí)經(jīng)驗(yàn),與大家共同探討、共同成長。請(qǐng)大家以開放的心態(tài)閱讀,相信

    2024年01月17日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包