1.ArrayList 集合和数组的优势对比: 长度可变添加数据的时候不需要考虑索引,默认将数据添加到末尾 1.1ArrayList类概述 什么是集合 提供一种存储空间可变的存储模型,存储的数据
什么是集合
提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
ArrayList集合的特点
底层是数组实现的,长度可以变化
泛型的使用
用于约束集合中存储元素的数据类型
方法名 | 说明 |
---|---|
public ArrayList() | 创建一个空的集合对象 |
方法名 | 说明 |
---|---|
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) | 在此集合中的指定位置插入指定的元素 |
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); }}
创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
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); } }}
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
public class ArrayListTest02 { public static void main(String[] args) { //创建集合对象 ArrayList<Student> array = new ArrayList<>(); //创建学生对象 Student s1 = new Student("林青霞", 30); Student s2 = new Student("风清扬", 33); Student s3 = new Student("张曼玉", 18); //添加学生对象到集合中 array.add(s1); array.add(s2); array.add(s3); //遍历集合,采用通用遍历格式实现 for (int i = 0; i < array.size(); i++) { Student s = array.get(i); System.out.println(s.getName() + "," + s.getAge()); } }}
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
学生的姓名和年龄来自于键盘录入
public class ArrayListTest { public static void main(String[] args) { //1.创建集合对象 ArrayList<Student> list = new ArrayList<>(); //2.键盘录入数据并添加到集合中 Scanner sc = new Scanner(System.in); for (int i = 1; i <= 3; i++) { //创建学生对象 Student s = new Student(); //键盘录入学生信息 System.out.println("请输入第" + i + "个学生的姓名"); String name = sc.next(); System.out.println("请输入第" + i + "个学生的年龄"); int age = sc.nextInt(); //把学生信息赋值给学生对象 s.setName(name); s.setAge(age); //把学生对象添加到集合当中 list.add(s); } //遍历 for (int i = 0; i < list.size(); i++) { Student stu = list.get(i); System.out.println(stu.getName() + ", " + stu.getAge()); } }}
需求:
1,main方法中定义一个集合,存入三个用户对象。
用户属性为:id,username,passWord
2,要求:定义一个方法,根据id查找对应的学生信息。
如果存在,返回true
如果不存在,返回false
代码示例:
package com.itheima.test4;import java.util.ArrayList;public class ArrayListTest { public static void main(String[] args) { //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","12345"); //3.添加元素 list.add(u1); list.add(u2); list.add(u3); //3.根据id查找是否存在 //调方法 //如果调用本类中的方法,直接写方法名就可以。 //如果我要调用其他类中的方法,需要用对象去调用。 boolean flag = contains(list, "heima004"); System.out.println(flag); } //1.我要干嘛? 判断id在集合中是否存在 //2.需要什么? 集合 id //3.是否需要继续使用?需要 //写在测试类中的方法,加static //写在javabean类中的方法,不加static public static boolean contains(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 true; } } //当集合里面所有的元素全部比较完毕了 //如果此时还不存在,才能返回false return false; }}
需求:
1,main方法中定义一个集合,存入三个用户对象。
用户属性为:id,username,password
2,要求:定义一个方法,根据id查找对应的学生信息。
如果存在,返回索引
如果不存在,返回-1
代码示例:
package com.itheima.test5;import com.itheima.test4.User;import java.util.ArrayList;public class ArrayListTest { public static void main(String[] args) { //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","12345"); //3.添加元素 list.add(u1); list.add(u2); list.add(u3); //4.查询索引 int index = findIndex(list, "heima004"); System.out.println(index); } //1.我要干嘛?查询索引 //2.需要什么?集合 id //3.是否需要继续使用 需要返回值 public static int findIndex(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; } } //如果循环结束还没有找到 return -1; } public static boolean contains(ArrayList<User> list, String id){ int index = findIndex(list, id); if(index >= 0){ return true; }else{ return false; } // return findIndex(list, id) >= 0; }}
来源地址:https://blog.csdn.net/wanghaoyingand/article/details/130254941
--结束END--
本文标题: 【Java】ArrayList(集合)超详解
本文链接: https://www.lsjlt.com/news/394182.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0