Java 集合

为什么要有集合

数组长度固定,如果需要动态变长的存数据,就不太可行
因此引入了集合,集合自动扩容,随着数据的插入可以动态增加长度

集合存储数据类型的特点

只可以存储引用数据类型,不可以直接存储基本数据类型
如果硬要存基本数据类型的数据,那可以将基本数据类型的数据变成一个包装类,就可以实现

集合和数组的对比

  • 数组
    数组长度固定、可以存储基本数据类型和引用数据类型
  • 集合
    集合长度可变、只能存储引用数据类型

ArrayList基本操作

新建一个ArrayList对象

这里引入了一个概念:泛型,就是执行集合中存储的数据类型
初始被创建的时候,集合的长度是0,即list.size() = 0

package com.arraylist;

import java.util.ArrayList;

public class ArrayListDemo1 {
    public static void main(String[] args) {
        //1. 创建集合的对象
        // 泛型:限定集合内存储的数据类型
        ArrayList<String> al = new ArrayList<String>();  // JDK以前的写法
        ArrayList<String> list = new ArrayList<>();  //JDK7以后得写法
        sout(list); //返回:[],代表一个空集合
    }
}

ArrayList是java已经写好的一个类。在底层做了一些处理
在打印的时候,不是返回地址值,而是集合中存储的数据内容

ArrayList成员方法

  • 增:boolean add(E e) 添加元素,返回值表示是否添加成功------总是返回true
  • 删:
    a. boolean remove(E e) 删除指定元素,返回值表示是否删除成功
    b. E remove(int index) 删除指定索引的元素,返回被删除的元素
  • 改: set(int index, E e) 修改指定索引下的元素,返回原来的元素
  • 查:
    a. get(int index) 获取指定索引的元素
    b. size() 集合的长度,也就是集合中元素的个数

ArrayList使用示例

package com.arraylist;

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        // 增
        list.add("I");
        list.add("have");
        list.add("a");
        list.add("pencil");
        //查
        System.out.println(list.get(1));
        System.out.println("list的长度为: " + list.size());

        // 改
        list.set(3, "apple");
        System.out.println(list);
        // 删
        list.remove(2);
        System.out.println(list);

    }
}

基本数据类型对应的包装类

基本数据类型包装类
byteByte
shortShort
charCharacter
intInteger
longLong
doubleDouble
floatFloat
booleanBoolean

例:创建一个整数集合,并遍历

package com.Test;

import java.util.ArrayList;

public class Test2 {
    public static void main(String[] args) {
        ArrayList<Integer> list  = new ArrayList<>();

		// 添加元素,照常添加数字即可
		// JDK5之后,int和Integet之间是可以互相转化的
        list.add(1);
        list.add(2);
        list.add(3);

        // 遍历
        System.out.print("[ ");
        for (int i = 0; i < list.size(); i++) {
            if (i == list.size() - 1){
                System.out.printf("%s ]", list.get(i));
            }else{
                System.out.printf("%s, ", list.get(i));
            }
        }
    }
}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值