java-ArrayList 比眉伴天荒 2024-03-17 14:25 48阅读 0赞 #### 文章目录 #### * * 1.ArrayList * * 集合和数组的优势对比: * 1.1 ArrayList类概述 * 1.2 ArrayList类常用方法 * * 1.2.1 构造方法 * 1.2.2 成员方法 * 1.2.3 示例代码 * 1.3 ArrayList存储字符串并遍历 * * 1.3.1 案例需求 * 1.3.2 代码实现 * 1.4 ArrayList存储学生对象并遍历 * * 1.4.1 案例需求 * 1.4.2 代码实现 * 1.5 查找用户的索引 * 1.6 判断用户的是否存在 ### 1.ArrayList ### #### 集合和数组的优势对比: #### 1. 长度可变 2. 添加数据的时候不需要考虑索引,默认将数据添加到末尾 #### 1.1 ArrayList类概述 #### * 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 * ArrayList集合的特点 长度可以变化,只能存储引用数据类型。 * 泛型的使用 用于约束集合中存储元素的数据类型 #### 1.2 ArrayList类常用方法 #### ##### 1.2.1 构造方法 ##### <table> <thead> <tr> <th>方法名</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>public ArrayList()</td> <td>创建一个空的集合对象</td> </tr> </tbody> </table> ##### 1.2.2 成员方法 ##### <table> <thead> <tr> <th>方法名</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>public boolean add(要添加的元素)</td> <td>将指定的元素追加到此集合的末尾</td> </tr> <tr> <td>public boolean remove(要删除的元素)</td> <td>删除指定元素,返回值表示是否删除成功</td> </tr> <tr> <td>public E remove(int index)</td> <td>删除指定索引处的元素,返回被删除的元素</td> </tr> <tr> <td>public E set(int index,E element)</td> <td>修改指定索引处的元素,返回被修改的元素</td> </tr> <tr> <td>public E get(int index)</td> <td>返回指定索引处的元素</td> </tr> <tr> <td>public int size()</td> <td>返回集合中的元素的个数</td> </tr> </tbody> </table> ##### 1.2.3 示例代码 ##### 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(3)); //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素 // System.out.println(array.set(1,"javaee")); //IndexOutOfBoundsException // System.out.println(array.set(3,"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(3)); //public int size():返回集合中的元素的个数 System.out.println(array.size()); //输出集合 System.out.println("array:" + array); } } #### 1.3 ArrayList存储字符串并遍历 #### ##### 1.3.1 案例需求 ##### 创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合 ##### 1.3.2 代码实现 ##### public class ArrayListDemo3 { public static void main(String[] args) { //1.创建集合对象 ArrayList<String> list = new ArrayList<>(); //2.添加元素 list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("ddd"); //3.遍历 //快捷键: list.fori 正向遍历 //list.forr 倒着遍历 System.out.print("["); for (int i = 0; i < list.size(); i++) { //i 依次表示集合里面的每一个索引 if(i == list.size() - 1){ //最大索引 System.out.print(list.get(i)); }else{ //非最大索引 System.out.print(list.get(i) + ", "); } } System.out.print("]"); } } #### 1.4 ArrayList存储学生对象并遍历 #### ##### 1.4.1 案例需求 ##### 创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合 ##### 1.4.2 代码实现 ##### public class ArrayListDemo4 { public static void main(String[] args) { //1.创建集合对象,用来存储数据 ArrayList<Student> list = new ArrayList<>(); //2.创建学生对象 Student s1 = new Student("zhangsan",16); Student s2 = new Student("lisi",15); Student s3 = new Student("wangwu",18); //3.把学生对象添加到集合中 list.add(s1); list.add(s2); list.add(s3); //4.遍历 for (int i = 0; i < list.size(); i++) { //i 依次表示集合中的每一个索引 Student stu = list.get(i); System.out.println(stu.getName() + ", " + stu.getAge()); } } } #### 1.5 查找用户的索引 #### 需求: 1,main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2,要求:定义一个方法,根据id查找对应的学生信息。 如果存在,返回索引 如果不存在,返回-1 代码示例: public class ArrayListDemo6 { public static void main(String[] args) { /*需求: 1,main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2,要求:定义一个方法,根据id查找对应的学生信息。 如果存在,返回索引 如果不存在,返回-1*/ //1.创建集合对象 ArrayList<User> list = new ArrayList<>(); //2.创建用户对象 User u1 = new User("heima001", "zhangsan", "123456"); User u2 = new User("heima002", "lisi", "1234"); User u3 = new User("heima003", "wangwu", "1234qwer"); //3.把用户对象添加到集合当中 list.add(u1); list.add(u2); list.add(u3); //4.调用方法,通过id获取对应的索引 int index = getIndex(list, "heima001"); System.out.println(index); } //要用必须返回,不要用可以返回也可以不返回 //明确说明需要有返回值 int public static int getIndex(ArrayList<User> list, String id) { //遍历集合得到每一个元素 for (int i = 0; i < list.size(); i++) { User u = list.get(i); String uid = u.getId(); if(uid.equals(id)){ return i; } } //因为只有当集合里面所有的元素都比较完了,才能断定id是不存在的。 return -1; } } #### 1.6 判断用户的是否存在 #### public class ArrayListDemo5 { public static void main(String[] args) { /* 需求: 1,main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2,要求:定义一个方法,根据id查找对应的学生信息。 如果存在,返回true 如果不存在,返回false*/ //1.定义集合 ArrayList<User> list = new ArrayList<>(); //2.创建对象 User u1 = new User("heima001","zhangsan","123456"); User u2 = new User("heima002","lisi","12345678"); User u3 = new User("heima003","wangwu","1234qwer"); //3.把用户对象添加到集合当中 list.add(u1); list.add(u2); list.add(u3); //4.调用方法,查询id是否存在 boolean result = contains(list, "heima001"); System.out.println(result); } public static boolean contains(ArrayList<User> list, String id){ //循环遍历集合,得到集合里面的每一个元素 //再进行判断 for (int i = 0; i < list.size(); i++) { //i 索引 list.get(i); 元素 User u = list.get(i); //判断id是否存在,我是拿着谁跟谁比较 //需要把用户对象里面的id拿出来再进行比较。 String uid = u.getId(); if(id.equals(uid)){ return true;//return 关键字:作用就是结束方法。 } } //只有当集合里面所有的元素全部比较完毕才能认为是不存在的。 return false; } }
相关 集合操作性能优化:JavaArrayList与LinkedList对比 在Java中,ArrayList和LinkedList都是常用的集合类,它们分别具有不同的特性,这在一定程度上影响了它们的性能。 1. **ArrayList**: - 数据 Bertha 。/ 2024年12月11日 06:42/ 0 赞/ 37 阅读
相关 使用集合框架:JavaArrayList和HashMap问题分析 在Java编程中,`java.util.ArrayList`和`java.util.HashMap`是两种常用的集合框架。下面对它们的问题进行分析: 1. `ArrayLis 秒速五厘米/ 2024年12月05日 22:06/ 0 赞/ 24 阅读
相关 集合操作不当:JavaArrayList中的插入、删除操作误区演示 在Java中,ArrayList是一种动态数组,支持添加元素、删除元素等操作。然而,在实际使用过程中,可能会出现一些误区。下面我将通过几个示例来演示这些误区: 1. 插入元素 小灰灰/ 2024年10月14日 17:03/ 0 赞/ 71 阅读
相关 集合操作:JavaArrayList删除元素异常案例 在Java中,当我们使用ArrayList类的remove方法来删除一个特定元素时,如果该元素不存在于列表中,会出现`IndexOutOfBoundsException`异常。 ╰+攻爆jí腚メ/ 2024年09月23日 10:03/ 0 赞/ 71 阅读
还没有评论,来说两句吧...