Java学习笔记(2)第九节--ArrayList

对于数组而言,长度不可改变。

对于ArrayList而言,长度是可以改变的。

标准形式是:ArrayList<E>,有泛型的数据集合。(泛型只能是引用类型,不能是基本数据类型)

1.打印:

        之前直接打印数组,得到的是数组的地址值。但是直接打印ArrayList,得到的是里面的内容。如果内容为空,则输出[ ],如果不为空,则输出内容。

代码示例:

public class ArrayList01 {

public static void main(String[] args) {

        ArrayList list =new ArrayList<>();

        System.out.println(list);

        System.out.println("===================");

        list.add("胡歌");

        System.out.println(list);

    }

}

运行结果

2.常用方法:

        list.add()方法:往ArrayList集合里面添加数据。

        list.get(int index);从集合中获取元素,参数是索引编号,从0开始。

        list.remove(int index);从集合中删除元素,参数是索引编号,从0开始。

        public int size();获取集合的长度,返回值是集合中元素的个数

TIP:

        1.对于ArrayList集合来说,add方法必定成功,所以返回值可用可不用。对于其他集合来说,则不一定成功。

代码示例:

import java.util.ArrayList;

public class ArrayList01 {

public static void main(String[] args) {

        ArrayList list =new ArrayList<>();

        System.out.println(list);

        System.out.println("==================================");

        list.add("胡歌");    //添加数据

        System.out.println(list);

        list.add("李逍遥");

        list.add("景天");

        list.add("重楼");

        list.add("飞蓬");

        System.out.println(list);      //打印集合

        System.out.println("==================================");

        //用get()方法获取数据,用泛型接收返回的数据

        String name2 = list.get(1);  //下标从0开始,1代表得到第二个数据

        System.out.println("集合的第二个数据名字是:"+name2);

        System.out.println("==================================");

        //用remove()方法获取数据,用泛型接收返回的数据

        String deletename1 = list.remove(3);  //下标从0开始,3代表删除第四个数据

        System.out.println("集合删除的数据名字是:"+deletename1);

        System.out.println(list);

        System.out.println("==================================");

        //获取集合的长度尺寸

        int size = list.size();    //size有括号

        System.out.println("集合目前的长度是:"+size);

    }

}

运行结果

3. ArrayList集合添加基本数据类型的方法

添加方法

特殊:【Integer】整型包装类,【Character】字符型包装类

        JDK1.5 +以上支持自动装箱,自动拆箱。

代码示例:

import java.util.ArrayList;

public class DemoArrayListBasic {

public static void main(String[] args) {

        //添加整型数据

        ArrayList array1 =new ArrayList();

        array1.add(100);

        array1.add(200);

        array1.add(300);

        System.out.println(array1);

        int num2 = array1.get(1);

        System.out.println("集合的二号元素是:"+num2);

        array1.remove(0);

        System.out.println(array1);

        int size = array1.size();

        System.out.println("整型集合的长度是:"+size);

    }

}

运行结果

4. ArrayList练习:

        1.随机产生10个1~30的数字,放到整型集合中,并遍历输出

分析:

分析情况

代码示例:

import java.util.ArrayList;

import java.util.Random;

public class DemoArrayListTest1 {

public static void main(String[] args) {

        ArrayList list1 =new ArrayList<>();

        Random r =new Random();

        int range =30;

        for (int i =0; i <10; i++) {

            int num = r.nextInt(range)+1;

            list1.add(num);

        }

        System.out.println(list1);

        for(int i =0;i

            int getnum=list1.get(i);

            System.out.println("数组的第"+(i+1)+"号元素是:"+getnum);

        }

    }

}

运行结果

        2.创建4个学生对象添加到数组中,并遍历输出:

分析:

分析情况

代码示例:

2.1--标准学生类:

public class Student {

private Stringname;

    private int age;

    public Student(String name, int age) {

        this.name = name;

        this.age = age;

    }

    public Student() {

    }

    public StringgetName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

}

2.2--主函数测试:

import java.util.ArrayList;

public class DemoArrayListTest2 {

public static void main(String[] args) {

        //创建泛型(学生对象)数据集合

        ArrayList list2 =new ArrayList<>();

        //创建学生对象

        Student student01 =new Student("坂田银时",28);

        Student student02 =new Student("夜兔神乐",20);

        Student student03 =new Student("志村新八",21);

        Student student04 =new Student("冲田总悟",21);

        //向集合添加数据

        list2.add(student01);

        list2.add(student02);

        list2.add(student03);

        list2.add(student04);

        //遍历集合

        for (int i =0; i < list2.size(); i++) {

    System.out.println("学生的姓名是:"+list2.get(i).getName()+"。学生的年龄是:"+ list2.get(i).getAge());

        }

    }

}

运行结果

        3.定义打印集合的方式:{元素1@元素2@元素3...}

代码示例:

3.1--打印方法:

private static void printArray(ArrayList list3) {

        System.out.print("{");

        for (int i =0; i < list3.size(); i++) {

        if(i == list3.size()-1){

                System.out.print(list3.get(i)+"}");

            }else {

                System.out.print(list3.get(i)+"@");

            }

       }

    }

}

3.2--主函数测试:

import java.util.ArrayList;

public class DemoArrayListTest3 {

public static void main(String[] args) {

        //创建集合

        ArrayList list3 =new ArrayList<>();

        list3.add("上条当麻");

        list3.add("茵蒂克丝");

        list3.add("御坂美琴");

        list3.add("风斩冰华");

        list3.add("白井黑子");

        System.out.println(list3);

        printArray(list3);

    }

}

运行结果

        4.大集合存放20个随机的数字,然后筛选出其中的偶数放入小集合中。用自定义方法实现筛选

分析:

分析情况

代码示例:

4.1--小集合方法:

private static ArrayListSmallList(ArrayList list4) {

        ArrayList list =new ArrayList<>();

        for (int i =0; i < list4.size(); i++) {

                if((list4.get(i)%2)==0){    //判断是否为偶数

                list.add(list4.get(i));

            }else{

                continue;

            }

        }

        return list;

    }

}

4.2--主函数测试:

import java.util.ArrayList;

import java.util.Random;

public class DemoArrayListTest4 {

public static void main(String[] args) {

        ArrayList list4 =new ArrayList<>();

        ArrayList smalllist =new ArrayList<>();

        Random r =new Random();

        int range =100;

        for (int i =0; i <20; i++) {

            int num = r.nextInt(range)+1;

            list4.add(num);

        }

        System.out.println(list4);

        smalllist=SmallList(list4);    //接收返回的数组

        System.out.println("偶数总共有"+smalllist.size()+"个:");

        System.out.println(smalllist);

    }

}

运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343