集合
一、为什么要有集合
用来存储数据,并且不用设置长度,会自动扩容
1.集合存储数据类型的特点:
(1)只能存储应用数据类型
(2)如果要存基本数据类型,就要包装类存入
2.集合和数组的区别:
长度 | 存储类型 | |
---|---|---|
数组 | 长度固定 | 基本数据类型、引用数据类型 |
集合 | 长度可变,添加元素自动增加长度,删除自动减小 | 只能存储 引用 数据类型 |
二、集合
1.ArrayList:
(1).创建集合对象
//泛型:限定结合中存储数据的类型 ArrayList ==>E :限定存储数据的类型
//jdk 7 以前的写法
ArrayList list = new ArrayList();
//jdk7以后 ,等号右边 <> 里面可以不用写类型
ArrayList list1 = new ArrayList<>();
//此时创建的ArrayList对象,而ArrayList是Java已经写好的类
//这个类在底层做了一些处理
//打印对象不是地址值,而是集合中存储数据内容
//在展示的时候,会拿[]把所有的数据进行包裹
import java.lang.reflect.Array;
import java.util.ArrayList;
public class Demo01_gather_ArrayList {
public static void main(String[] args) {
//1.创建集合对象
//泛型:限定结合中存储数据的类型 ArrayList<E> ==>E :限定存储数据的类型
//jdk 7 以前的写法
ArrayList<String> list = new ArrayList<String>();
//jdk7以后 ,等号右边 <> 里面可以不用写类型
ArrayList<String> list1 = new ArrayList<>();
//此时创建的ArrayList对象,而ArrayList是Java已经写好的类
//这个类在底层做了一些处理
//打印对象不是地址值,而是集合中存储数据内容
//在展示的时候,会拿[]把所有的数据进行包裹
System.out.println(list); // 打印结果为 []
}
}
(2)ArrayList 成员方法
增删改查
方法名 | 说明 |
---|---|
boolean add (E e) | 添加元素,返回值表示是否添加成功 |
boolean remove(E e) | 删除指定元素,返回值表示是否删除成功 |
E remove (int index) | 删除指定索引的元素,返回被删除元素 |
E set (int index) | 修改指定索引下的元素,返回原来的元素 |
E get (int index) | 获取指定索引的元素 |
int size ( ) | 集合的长度,也就是集合中元素的个数 |
import java.util.ArrayList;
public class Demo02_gather_memberMethod {
public static void main(String[] args) {
//创建ArrayList对象
ArrayList<String> list = new ArrayList<>();
// 1. boolean add (E e)添加元素,返回值表示是否添加成功
boolean result1 = list.add("liangzhibo");
//在指定索引处添加元素
list.add(1,"is good");
System.out.println(list);
System.out.println(result1);
// 2. boolean remove(E e)删除指定元素,返回值表示是否删除成功
boolean result2 = list.remove("is good");
System.out.println(result2); //返回值表示是否删除成功==>true
System.out.println(list); //==> [liangzhibo]
// 3. E remove (int index)删除指定索引的元素,返回被删除元素
String str1 = list.remove(0); //删除0索引的元素
System.out.println(str1); //接受的是删掉的内容 ==> is good
System.out.println(list); //打印元素为空 []
// 4. E set (int index)修改指定索引下的元素,返回原来的元素
String str2 = list.set(1,"is very good"); //修改索引为1 的元素
System.out.println(list); //[liangzhibo, is very good]
System.out.println(str2); //返回指定索引被覆盖的元素
// 5. E get (int index)获取指定索引的元素
String str3 = list.get(1); //获取1索引处的元素
System.out.println(str3); //is very good
// 6. int size ( )集合的长度,也就是集合中元素的个数
int num = list.size(); //获取集合的长度,即元素的个数
System.out.println(num); //2
}
}
(3)集合遍历
//快速生成 list.fori
//集合遍历
for (int i = 0; i < list.size(); i++) {
// i==>表示索引
// list.get(i) ==> 表示集合里面的每一个元素
String str4 = list.get(i);
System.out.println(str4);
}