ArrayList基础知识

Java中ArrayList集合的主要用途是用于存储一组有序的数据,可以动态添加或删除元素,并且在获取元素时可以通过下标访问。

好处如下:

  1. 无需指定数组长度:与普通数组不同,ArrayList没有固定大小的限制,可以根据实际需求动态添加或删除元素。

  2. 提供了一系列的方法:ArrayList提供了一系列的方法,比如add(), remove(), get()等,用于方便地操作元素,避免了手动维护数组的麻烦。此外,ArrayList类还提供了排序(sort())、查找(indexOf())等操作。

  3. 集合元素可以是任意类型:在ArrayList中,我们可以添加任何类型的对象,包括自定义类型等,这为编程带来了更大的灵活性和便利性。

  4. 集合可以存储基本类型的值,但需要使用对应的包装类来将基本类型转换为对象。例如,可以使用IntegerDouble等包装类来存储整型、双精度浮点型等基本类型的值。

    在Java中,集合框架提供了一系列针对不同需求的接口和类,其中包括存储基本类型值的接口和类,如List<Integer>Set<Float>Map<String, Double>等。这些集合类都通过自动装箱(Autoboxing)和自动拆箱(Unboxing)机制,将基本类型转换为对应的包装类进行操作。

    但如果需要存储大量基本类型值,推荐使用基本类型数组(如int[]、double[]等)来代替集合,因为数组的性能更高。

  5. 可以实现动态数组:如果需要实现动态数组(在运行时可分配内存空间),ArrayList是一个很好的选择。
     

     ArrayList<Integer> list = new ArrayList<Integer>();

    在JDK7以后可以这样写:
     

    ArrayList<Integer> list = new ArrayList<>();


    <>为泛型,用于限定集合中的数据类型。
    使用泛型的原因:

    形参化类 ArrayList 的原始使用指的是 ArrayList 在未经过泛型类型参数化时的使用方式。在 Java 1.4 及更早版本中,ArrayList 并未使用泛型,其元素类型为 Object,因此无法在编译期间对添加到列表中的元素进行类型检查,会导致类型转换异常等问题。

    Java 5.0 引入了泛型机制,可以通过将类型参数传递给 ArrayList 来定义具体的列表类型,例如可以声明一个 ArrayList<String> 来表示只能存储字符串的列表。这种方式称为泛型类型参数化。

    而原始使用 ArrayList 则是没有进行类型参数化的情况,即仍然使用 ArrayList 默认的元素类型 Object,这种方式虽然在一定程度上保持了兼容性,但也会带来类型安全性和可读性等方面的问题。因此,在使用 ArrayList 时,建议优先使用泛型类型参数化,以提高代码的可靠性和可维护性。
     

    System.out.println(list);

    打印出来的是[ ];而不是地址值。
    常用成员方法:

    /*ArrayList 是 Java 标准库中常用的动态数组实现,提供了丰富的成员方法以支持数组的增删改查等操作。以下是 ArrayList 常用的成员方法:
    
    boolean add(E e): 将指定元素添加到列表的尾部。如果列表已满,则自动扩容。
     remove(int index): 移除列表中指定位置的元素,并将该元素返回。
    boolean remove(E e):移除指定元素
    get(int index): 返回列表中指定位置的元素。
    set(int index, E element): 替换列表中指定位置的元素为指定元素。
    int size(): 返回列表中元素的数量。
    boolean isEmpty(): 判断列表是否为空。
    clear(): 移除列表中所有元素。
    还有一些其他的方法也非常有用,例如:
    
    boolean contains(Object o): 判断列表是否包含指定元素。
    indexOf(Object o) 和 lastIndexOf(Object o): 返回指定元素在列表中第一次和最后一次出现的索引,若不存在则返回 -1。
    addAll(Collection<? extends E> c): 将指定集合中的所有元素添加到列表的末尾。
    toArray(): 将列表转换为数组。*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java集合是Java编程中非常重要的一部分,它提供了一种方便的方式来处理一组对象。Java集合框架包括List、Set、Map等接口和实现它们的类。下面是Java集合基础知识的介绍: 1. List接口:List是一个有序的集合,它可以包含重复的元素。List接口的常用实现类有ArrayList和LinkedList。其中,ArrayList是一个动态数组,它可以自动扩容以容纳更多的元素;而LinkedList是一个双向链表,它可以快速地在列表中插入或删除元素。 2. Set接口:Set是一个不允许重复元素的集合。Set接口的常用实现类有HashSet和TreeSet。其中,HashSet是一个基于哈希表的实现,它可以快速地查找元素;而TreeSet是一个基于红黑树的实现,它可以对元素进行排序。 3. Map接口:Map是一个键值对的集合,它允许使用键来查找值。Map接口的常用实现类有HashMap和TreeMap。其中,HashMap是一个基于哈希表的实现,它可以快速地查找键值对;而TreeMap是一个基于红黑树的实现,它可以对键进行排序。 下面是一个示例代码,演示了如何使用ArrayList集合存储学生的成绩,并遍历这个集合: ```java // 创建一个ArrayList集合,向这个集合中存入学生的成绩 ArrayList<Integer> al = new ArrayList<Integer>(); al.add(78); al.add(67); // 对集合遍历 // 方式1 for (Object obj : al) { System.out.println(obj);} // 方式2 for (Integer i : al) { System.out.println(i); } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值