集合是与数组类似,也是一种容器,用于装数据的。
数组的特点:
- 数组定义完成并启动后,类型确定,长度固定。
- 问题:在个数不能确定,且要进行增删数据操作的时候,数组是不太合适的。
集合的特点:
- 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。
- 集合非常适合做元素个数不确定,且要进行增删操作的业务场景。
- 集合提供了许多丰富、好用的功能,而数组的功能很单一。
- 集合容器中存储的是每个对象的什么东西?在堆内存中的地址!
ArrayList集合
- ArrayList是集合中的一种,它支持索引。
代码演示如下:
public class ArrayListDemo1 { public static void main(String[] args) { //1.创建ArrayList集合的对象 ArrayList list = new ArrayList(); //2.添加数据 list.add("Java"); list.add("Java1"); list.add("MySQL"); list.add("黑马"); list.add(23); list.add(23.5); list.add(false); System.out.println(list.add('中')); System.out.println(list); //3.给指定索引位置插入元素 list.add(0,"我爱学Java"); System.out.println(list); } }
泛型概述
- ArrayList<E>: 其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。
举例:
- ArrayList<String>: 此集合只能操作字符串类型的元素。
- ArrayList<Integer>: 此集合只能操作整数类型的元素。
- 注意:集合中只能存储引用类型,不支持基本数据类型。
实际代码演示如下:
public class ArrayListDemo2 { public static void main(String[] args) { //ArrayList<String> list = new ArrayList<String>(); ArrayList<String> list = new ArrayList<>(); list.add("Java"); list.add("MySQL"); System.out.println(list); ArrayList<Integer> list2 = new ArrayList<>(); list2.add(22); list2.add(100); System.out.println(list2); } }
ArrayList集合常用方法如图:
具体代码演示如下:
public class ArrayListDemo3 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("Java"); list.add("Java1"); list.add("MySQL"); list.add("MyBatis"); list.add("HTML"); //1.public E get(int index): 获取某个索引位置处的元素值 String e = list.get(3); System.out.println(e); //2.public int size(): 获取集合大小(元素个数) System.out.println(list.size()); //3.完成集合的遍历 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } //4.public E remove(int index): 删除某个索引位置处的元素值,并返回被删除的元素值 System.out.println(list); String e2 = list.remove(2); System.out.println(e2); System.out.println(list); //5.public boolean remove(object o):直接删除元素值,删除成功返回true,删除失败返回false System.out.println(list.remove("MyBatis")); System.out.println(list); //6.public Eset(int index,E element): 修改某个索引位置处的元素值 String e3 = list.set(0,"贾乃绿"); System.out.println(e3); System.out.println(list); } }