2020-10-14

本文介绍了Java中的ArrayList集合,包括其定义、构造方法及常用操作如添加、删除、修改和获取元素。通过实例展示了如何创建和遍历ArrayList,以及删除特定元素的方法。此外,还提供了两个练习案例,涉及字符串和学生对象的存储与遍历。
摘要由CSDN通过智能技术生成


前言

这真的是昨天学的内容,只是昨天学完了以后没来得及整理,下不为例


一、数组和集合

集合的存储空间是可变的,数组的存储空间不变,如果直接打印数组对象,那么打印的是数组对象的地址,所以需要调用方法,从而获取其值

二、ArrayList集合

1.定义

ArrayList是大小可变的数组实现,也就是说集合底层的实现原理还是数组。

ArrayList是引用数据类型

将ArrayList看作是容器,如果不定义具体的类型,那什么类型的数据元素他都可以装,但是为了使用方便,我们可以在其后面的加一个<>定义其盛装的数据类型

ArrayList list=new ArrayList();//任何类型都可以进去
ArrayList<String> list=new ArrayList();//字符串类型,需要注意的是,此处的类型必须是引用类型,例如int类型需要用Integer

2.构造方法

//1.无参构造方法
public ArrayList();

//2.有参构造方法
public ArrayList(int n);

关于ArrayList的长度,若是未指定长度

ArrayList list=new ArrayList;//初始化为0,但是加入第一个参数后容量为10;
ArrayList list=new ArrayList(20);//创建了一个容量为20的空列表
//无论开始时是多少,如果后面不够都会自动扩容

2.ArrayList方法

/*1)填加数据元素 
add(element)和add(int index,E element)
*/
package ArrayList1;

import java.util.ArrayList;

public class DemoArrayList2 {
    public static void main(String[] args) {
        //容量为10,空参构造
        ArrayList list=new ArrayList();
        //调用add()方法
        list.add('a');
        list.add(123);
        list.add("abc");

        System.out.println(list);

        ArrayList<Integer> list2=new ArrayList();
        list2.add(1);
        list2.add(2);
        list2.add(3);
        list2.add(2,4);
        System.out.println(list2);
    }
}

如果只是简单的add()填加某个数据元素,那会填加到尾部,如果加入一个索引就可以到任何位置,需要注意的是,ArrayList的索引也是从0开始

//2)删除:remove()
public static void testRemove()
{
    ArrayList<String> list = new ArrayList();
    list.add("123");
    list.add("456");
    list.add("789");
    list.add("111");
    list.add("222");
    list.add("333");
    list.add("444");

    //public boolean remove(Object o)删除指定的元素,返回是否删除成功
    boolean remove1 = list.remove("123");
    System.out.println(remove1);
    System.out.println(list);
    //public E remove(int index)删除指定索引处的元素,返回被删除元素
    String s = list.remove(2);
    System.out.println(s);
    System.out.println(list);
}

一般情况下,我们不会用布尔类型去接remove()的返回值,因为意义不大

//3)修改:set
public static void testset()
{
    ArrayList<String> list = new ArrayList();
    list.add("123");
    list.add("456");
    list.add("789");
    list.add("111");
    list.add("222");
    list.add("333");
    list.add("444");


    //public E set(int index,E element)修改指定索引处的元素,返回被修改的元素
    String x = list.set(0, "xjl");
    System.out.println(x);
    System.out.println(list);
}
//4)获取get()
for (int i = 0; i < list.size(); i++) {
    Student stu = list.get(i);
    System.out.println(stu.getName()+"..."+stu.getAge());
}

三、习题练习

//1.创建一个存储字符串的集合,存储三个字符串元素,使用程序实现在控制台遍历集合
public static void main(String[] args) {
  ArrayList<String> list=new ArrayList();
  list.add("123");
  list.add("xjl");
  list.add("xujialin");
  list.add("222");
  for(int i=0;i<list.size();i++)
  {
      System.out.println(list.get(i));
  }
}

//2.创建一个存储学生对象的集合,使用程序实现在控制台遍历该集合

package ArrayList1;

import domain.Student;

import java.util.ArrayList;

public class DemoArrayList5 {
    /*

    思路:
    1.定义一个学生类
    2.创建学生对象
    3.存入集合
    4.遍历集合
     */
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList();

        Student stu1=new Student("张三","15");
        Student stu2=new Student("李四","16");
        Student stu3=new Student("王五","18");

        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName()+"..."+stu.getAge());


        }
    }
}

package ArrayList1;

import java.util.ArrayList;

public class DemoArrayList7 {
    /*
    需求:
      创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串,删除所有的test字符串,删除后,将集合打印到控制台

    思路:
    1.创建一个String类型的集合
    2.使用add()方法添加
    3.使用remove()方法进行删除(循环删除),根据元素进行删除,只能删除元素中第一个
    4.输出剩余字符串
     */
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList();
        list.add("test");
        list.add("张三");
        list.add("李四");
        list.add("test");
        list.add("test");
        for (int i = 0; i < list.size(); i++) {
            String s=list.get(i);
            //变量与常量进行比较,尽量让常量调用方法
            if("test".equals(s))
            {
                list.remove(i);
                i--;//前面元素删除完后,后面的元素会向前移动,所以需要删除
            }
        }


        System.out.println(list);

    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值