Java入门之~ArrayList

简介: 1.ArrayList1.1ArrayList类概述• 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变• ArrayList集合的特点 底层是数组实现的,长度可以变化• 泛型的使用 用于约束集合中存储元素的数据类型


1.ArrayList

1.1ArrayList类概述

  • 什么是集合
    提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
  • ArrayList集合的特点
    底层是数组实现的,长度可以变化
  • 泛型的使用
    用于约束集合中存储元素的数据类型

1.2ArrayList类常用方法

1.2.1构造方法

方法名 说明
public ArrayList() 创建一个空的集合对象

1.2.2成员方法

方法名 说明
public boolean remove(Object o) 删除指定的元素,返回删除是否成功
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中的元素的个数
public boolean add(E e) 将指定的元素追加到此集合的末尾
public void add(int index,E element) 在此集合中的指定位置插入指定的元素

1.2.1示例代码

public class ArrayListDemo02 {

   public static void main(String[] args) {

       //创建集合

       ArrayList<String> array = new ArrayList<String>();


       //添加元素

       array.add("hello");

       array.add("world");

       array.add("java");


       //public boolean remove(Object o):删除指定的元素,返回删除是否成功

//        System.out.println(array.remove("world"));

//        System.out.println(array.remove("javaee"));


       //public E remove(int index):删除指定索引处的元素,返回被删除的元素

//        System.out.println(array.remove(1));


       //IndexOutOfBoundsException

//        System.out.println(array.remove(1));


       //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素

//        System.out.println(array.set(1,"javaee"));


       //IndexOutOfBoundsException

//        System.out.println(array.set(1,"javaee"));


       //public E get(int index):返回指定索引处的元素

//        System.out.println(array.get(0));

//        System.out.println(array.get(1));

//        System.out.println(array.get(2));

       //System.out.println(array.get(1)); //?????? 自己测试


       //public int size():返回集合中的元素的个数

       System.out.println(array.size());


       //输出集合

       System.out.println("array:" + array);

   }

}

1.1ArrayList存储字符串并遍历

1.1.1案例需求

创建一个存储字符串的集合,存储1个字符串元素,使用程序实现在控制台遍历该集合

1.1.2代码实现

/*

   思路:

       1:创建集合对象

       2:往集合中添加字符串对象

       1:遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现

       4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现

       5:遍历集合的通用格式

*/

public class ArrayListTest01 {

   public static void main(String[] args) {

       //创建集合对象

       ArrayList<String> array = new ArrayList<String>();


       //往集合中添加字符串对象

       array.add("刘正风");

       array.add("左冷禅");

       array.add("风清扬");


       //遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现

//        System.out.println(array.size());


       //遍历集合的通用格式

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

           String s = array.get(i);

           System.out.println(s);

       }

   }

}

1.4ArrayList存储学生对象并遍历

1.4.1案例需求

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

1.4.2代码实现

/*

   思路:

       1:定义学生类

       2:创建集合对象

       1:创建学生对象

       4:添加学生对象到集合中

       5:遍历集合,采用通用遍历格式实现

*/

public class ArrayListTest02 {

   public static void main(String[] args) {

       //创建集合对象

       ArrayList<Student> array = new ArrayList<>();


       //创建学生对象

       Student s1 = new Student("林青霞", 10);

       Student s2 = new Student("风清扬", 1);

       Student s1 = new Student("张曼玉", 18);


       //添加学生对象到集合中

       array.add(s1);

       array.add(s2);

       array.add(s1);


       //遍历集合,采用通用遍历格式实现

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

           Student s = array.get(i);

           System.out.println(s.getName() + "," + s.getAge());

       }

   }

}

1.5ArrayList存储学生对象并遍历升级版

1.5.1案例需求

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

       学生的姓名和年龄来自于键盘录入

1.5.2代码实现

/*

   思路:

       1:定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为String类型

       2:创建集合对象

       1:键盘录入学生对象所需要的数据

       4:创建学生对象,把键盘录入的数据赋值给学生对象的成员变量

       5:往集合中添加学生对象

       6:遍历集合,采用通用遍历格式实现

*/

public class ArrayListTest {

   public static void main(String[] args) {

       //创建集合对象

       ArrayList<Student> array = new ArrayList<Student>();


       //为了提高代码的复用性,我们用方法来改进程序

       addStudent(array);

       addStudent(array);

       addStudent(array);


       //遍历集合,采用通用遍历格式实现

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

           Student s = array.get(i);

           System.out.println(s.getName() + "," + s.getAge());

       }

   }


   /*

       两个明确:

           返回值类型:void

           参数:ArrayList<Student> array

    */

   public static void addStudent(ArrayList<Student> array) {

       //键盘录入学生对象所需要的数据

       Scanner sc = new Scanner(System.in);


       System.out.println("请输入学生姓名:");

       String name = sc.nextLine();


       System.out.println("请输入学生年龄:");

       String age = sc.nextLine();


       //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量

       Student s = new Student();

       s.setName(name);

       s.setAge(age);


       //往集合中添加学生对象

       array.add(s);

   }

}

##

相关文章
|
3月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
103 3
|
22天前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
97 60
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
83 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
1月前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
2月前
|
Java 索引 容器
Java ArrayList扩容的原理
Java 的 `ArrayList` 是基于数组实现的动态集合。初始时,`ArrayList` 底层创建一个空数组 `elementData`,并设置 `size` 为 0。当首次添加元素时,会调用 `grow` 方法将数组扩容至默认容量 10。之后每次添加元素时,如果当前数组已满,则会再次调用 `grow` 方法进行扩容。扩容规则为:首次扩容至 10,后续扩容至原数组长度的 1.5 倍或根据实际需求扩容。例如,当需要一次性添加 100 个元素时,会直接扩容至 110 而不是 15。
Java ArrayList扩容的原理
|
2月前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
2月前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
105 5
|
2月前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
41 1

热门文章

最新文章