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);

   }

}

##

相关文章
|
2月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
53 3
|
20天前
|
Java 索引 容器
Java ArrayList扩容的原理
Java 的 `ArrayList` 是基于数组实现的动态集合。初始时,`ArrayList` 底层创建一个空数组 `elementData`,并设置 `size` 为 0。当首次添加元素时,会调用 `grow` 方法将数组扩容至默认容量 10。之后每次添加元素时,如果当前数组已满,则会再次调用 `grow` 方法进行扩容。扩容规则为:首次扩容至 10,后续扩容至原数组长度的 1.5 倍或根据实际需求扩容。例如,当需要一次性添加 100 个元素时,会直接扩容至 110 而不是 15。
Java ArrayList扩容的原理
|
14天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
24天前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
20天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
26天前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
66 5
|
24天前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
32 1
|
1月前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
46 3
|
2月前
|
Java
Java中的多线程编程:从入门到精通
本文将带你深入了解Java中的多线程编程。我们将从基础概念开始,逐步深入探讨线程的创建、启动、同步和通信等关键知识点。通过阅读本文,你将能够掌握Java多线程编程的基本技能,为进一步学习和应用打下坚实的基础。
|
2月前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
51 1
java制作游戏,如何使用libgdx,入门级别教学