1 什么是集合?
集合是一种容器,用来装数据的,类似于数组。
2 那既然有了数组,为什么还要有集合?
数组定义完毕并且启动项目后,长度就固定了。
集合大小可变,开发中用的就会更加多。
3 如何创建一个ArrayList集合对象
ArrayList是集合中最常用的一种,ArrayList是泛型类,可以约束存储的数据类型
创建对象,调用无参数构造器初始化对象。
//创建一个ArrayList的集合对象
ArrayList list = new ArrayList();
4.ArrayList的常用方法
常用方法名 | 说明 |
---|---|
public boolean add(E e) | 将指定的元素添加到此集合的末尾 |
public void add(int index , Element) | 在此集合中的指定位置插入指定的元素 |
public E get(int index) | 返回指定索引处的元素 |
public int size() | 返回集合中的元素的个数 |
public E remove(int index) | 删除指定索引处的元素吗,返回被删除的元素 |
public boolean remove (Object o) | 删除指定的元素,返回删除是否成功 |
public E set(int index , E element) | 修改指定索引的元素 |
5.添加元素add
package com.web.arrayList;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
//创建一个ArrayList的集合对象
ArrayList list = new ArrayList();
list.add("你好");
list.add(123);
System.out.println(list);
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("你好");
arrayList.add("java");
System.out.println(arrayList);
//往集合中的某个位置添加一个元素
arrayList.add(1,"学习");
System.out.println(arrayList);
}
}
//[你好, 123]
//[你好, java]
//[你好, 学习, java]
6 根据索引的获取集合中的某个元素get
package com.web.arrayList;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("你好");
arrayList.add("java");
System.out.println(arrayList);
//往集合中的某个位置添加一个元素
arrayList.add(1,"学习");
// System.out.println(arrayList);
//获取集合中某个索引值的元素
String s = arrayList.get(1);
System.out.println(s);
}
}
//[你好, java]
//学习
7 获取集合的大小,存取元素的个数 size
package com.web.arrayList;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("你好");
arrayList.add("java");
System.out.println(arrayList);
//往集合中的某个位置添加一个元素
arrayList.add(1,"学习");
// System.out.println(arrayList);
//获取集合中某个索引值的元素
String s = arrayList.get(1);
System.out.println(s);
//获取集合当中元素的个数
int size1 = arrayList.size();
System.out.println(size1);
}
}
//[你好, java]
//学习
//3
8 删除指定元素的值remove
package com.web.arrayList;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("你好");
arrayList.add("java");
// System.out.println(arrayList);
//往集合中的某个位置添加一个元素
arrayList.add(1,"学习");
// System.out.println(arrayList);
//获取集合中某个索引值的元素
String s = arrayList.get(1);
System.out.println(s);
//获取集合当中元素的个数
int size1 = arrayList.size();
System.out.println(size1);
//删除指定索引的元素,会返回删除的元素值
String remove = arrayList.remove(2);
System.out.println(remove);
//删除指定值,返回boolean类型,默认删除的是第一次出现的数据
boolean success = arrayList.remove("学习");
System.out.println(success);
System.out.println(arrayList);
}
}
//学习
//3
//java
//true
9 修改指定索引的值set
package com.web.arrayList;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("你好");
arrayList.add("java");
// System.out.println(arrayList);
//往集合中的某个位置添加一个元素
arrayList.add(1, "学习");
// System.out.println(arrayList);
//获取集合中某个索引值的元素
String s = arrayList.get(1);
System.out.println(s);
//获取集合当中元素的个数
int size1 = arrayList.size();
System.out.println(size1);
//删除指定索引的元素,会返回删除的元素值
String remove = arrayList.remove(2);
System.out.println(remove);
//删除指定值,返回boolean类型,默认删除的是第一次出现的数据
boolean success = arrayList.remove("学习");
System.out.println(success);
System.out.println(arrayList);
arrayList.add("java");
arrayList.add("c");
arrayList.add("python");
arrayList.add("c#");
//修改某个索引位置处的数据,修改后会返回原来的值给我们
System.out.println(arrayList.set(1, "你好呀"));
System.out.println(arrayList);
}
}
//学习
//3
//java
//true
//[你好]
//java
//[你好, 你好呀, c, python, c#]
10 ArrayList集合案例
利用ArrayList做一个把书籍加入到购物车后,删除某一类的书籍
package com.web.arrayList;
import java.util.ArrayList;
public class Demo2 {
public static void main(String[] args) {
//创建一个集合来存储书名
ArrayList<String> list = new ArrayList<>();
list.add("精通java");
list.add("精通python");
list.add("精通C语言");
list.add("学习java入门技术");
list.add("java基础");
list.add("java的企业级开发");
list.add("精通Linux");
for (int i = 0; i < list.size(); i++) {
String bookName = list.get(i);
if (bookName.contains("java")) {
list.remove(bookName);
//在这里解释一下为什么要把索引往后退一个呢,因为在ArrayList集合中,删除一个元素,该元素后的元素会往前占被删元素的位置
//为了避免后面的元素没有删掉,所以需要每删一个,索引就往前走一位。
i--;
}
}
System.out.println(list);
}
}
为了解决上面提到的问题,还可以有一种办法,就是从最后一个集合的索引开始遍历,就是倒着遍历,这样就可以避免漏删元素
package com.web.arrayList;
import java.util.ArrayList;
public class Demo3 {
public static void main(String[] args) {
//创建一个集合来存储书名
ArrayList<String> list = new ArrayList<>();
list.add("精通java");
list.add("精通python");
list.add("精通C语言");
list.add("学习java入门技术");
list.add("java基础");
list.add("java的企业级开发");
list.add("精通Linux");
for (int i = list.size()-1; i >= 0; i--) {
String bookName = list.get(i);
if (bookName.contains("java")) {
list.remove(bookName);
//在这里解释一下为什么要把索引往后退一个呢,因为在ArrayList集合中,删除一个元素,该元素后的元素会往前占被删元素的位置
//为了避免后面的元素没有删掉,所以需要每删一个,索引就往前走一位。
}
}
System.out.println(list);
}
}
注意:本片文章是笔者的学习笔记,因为笔者的能力有限,会造成很多的问题,如果您在浏览或者运行代码的时候发现了问题,还请您能够在评论区留言,笔者看到后会在第一时间解决问题。