java基础语法-ArrayList集合

由于Java中数组长度不可变。
JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合。

ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。

ArrayList是不同步的,即不安全的,即运行速度比较快。

  • 空参构造器:ArrayList()

       默认构造一个初始容量为 10 的空列表。
    
  • int型参数构造器:ArrayList(int initialCapacity)

       构造一个具有指定初始容量的空列表
    
  • 导包:

import java.util.ArrayList;
  • 创建:

存储String类型的元素

ArrayList<String> list = new ArrayList<String>();
  • 存储int类型的数据
ArrayList<Integer> list = new ArrayList<Integer>(); 
*a.ArrayList集合存储5int类型元素
          public static void main(String[] args) {
               ArrayList<Integer> list = new ArrayList<Integer>();
            list.add(111);
            //ArrayList只能存引用类型,但111是基本类型,但java会自动装箱,封装成引用类型。
            list.add(222);
            list.add(333);
            list.add(444);
            list.add(555);
            for(int i=0; i<list.size(); i++){
                   System.out.println(list.get(i));
           }
          }
  • 存储Person类型(自定义类)的数据
ArrayList<Person> list = new ArrayList<Person>();
*b.ArrayList集合存储5个Person类型元素
         public static void main(String[] args) {
          ArrayList<Person> list = new ArrayList<Person>();
          list.add(new Person(“小强”));
          list.add(new Person(“老王”));
          list.add(new Person(“小虎”));
          list.add(new Person(“小泽”));
          list.add(new Person(“小红”));
          for(int i=0; i<list.size(); i++){
            Person p = list.get(i);
                  System.out.println(p);
                  //打印时候是调用了toString方法的,如果子类重写了该方法,就自动调用重写方法。如果子类没有重写,那么调用父类object的toString方法,此时打印的结果就是内存地址。
           }
         }
  • 存储布尔类型数据:
List<Boolean> arr = new ArrayList<Boolean>();

ArrayList是List接口的实现类,其常用实现类有ArrayList与LinkedList。
布尔类型数据在使用add方法时,可以直接在add()内写判断条件,例如leetcode1431.拥有糖果最多的孩子:
arr.add(y+extraCandies >= max);

class Solution {
    public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
        List<Boolean> arr = new ArrayList<Boolean>();
        int max = 0;
        for(int x : candies){
            if(x>max){max = x;}
        }
        for(int y : candies){
                arr.add(y+extraCandies >= max);
        }
        return arr;
    }
}

集合本身不接受基本类型,但会自动装箱存储,将基本类型封装成引用类型。
这种情况下,需要将基本类型转换为包装类。

集合里面只能装引用数据类型,所以<>里面要写右面这一栏

基本数据类型对应的引用数据类型表示形式
byteByte
shortShort
IntInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
  • ArrayList常用方法:
方法声明功能描述
boolean add (Object obj)将指定元素obj追加到集合的末尾
Obiect get (int index)返回集合中指定位置上的元素
int size ()返回集合中的元素个数
import java.util.ArrayList;
public class ArrayListDemo01 {
	public static void main(String[] args) {
		// 创建ArrayList集合
		ArrayList<String> list = new ArrayList<String>();
		// 向集合中添加元素
		list.add("stu1");
		list.add("stu2");
		list.add("stu3");
		list.add("stu4");
		// 获取集合中元素的个数
		System.out.println("集合的长度:" + list.size());
		// 取出并打印指定位置的元素
		System.out.println("第1个元素是:" + list.get(0));
		System.out.println("第2个元素是:" + list.get(1));
		System.out.println("第3个元素是:" + list.get(2));
		System.out.println("第4个元素是:" + list.get(3));
	}
}

  • 补充方法:
方法声明功能描述
boolean add (int index, Object obj)将指定元素obj插入到集合中指定的位置
Object remove (int index)从集合中删除指定Index处的元素,返回该元素
Object set (int index, Object obj)用指定元素obj替代集合中指定位置上的元素
void clear ()清空集合中所有元素
ArrayList<Integer> array = new ArrayList<Integer>();
array.add(1);
array.add(3);
array.add(4);
array.add(5);

//在索引1处添加元素2,得到集合1,2,3,4,5
array.add(1,2);
//将0索引上的元素修改成10
array.set(0,10);
//将4索引上的元素删除
array.remove(4);
//清空集合,数据没了,容器还在
array.clear();

//遍历集合
forint i = 0; i<array.size(); i++{
	System.out.println(array.get(i));
}

ArrayList中的contains方法,可以判断集合中是否包含某个元素,其本质还是使用equals方法,将传入的元素和已有元素逐个比较。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值