1.创建ArrayList集合
数组的长度是不能发生变化的,但是ArrayList集合长度是可以发生变化的
语法: ArrayList <E> list1 = new ArrayList<E>();
- 对于ArrayList来说,有一个<E>代表泛型
- 泛型也就是装在集合当中的所有元素,全部都是统一的什么类型
- 注意:泛型只能是引用类型,不能是基本类型
- 左边类型必须要写,JDK 1.7+开始右边尖括号内的类型可以省略
import java.util.ArrayList;
public class ArrayList1 {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
System.out.println(list1);
//若集合中没有元素,则输出的集合为[]
}
}
- 如果希望在ArrayList集合中储存基本类型的数据,必须使用基本类型对应的“包装类”
- 包装类是引用类型,位于java.lang包下,所以他不需要导包
ArrayList<Integer> list2 = new ArrayList<>();
2.ArrayList集合元素的添加,替换与删除
添加:
list.add(元素); 在集合后面添加新元素
list.add(索引值,元素); 在集合指定索引位置添加新元素,后面元素依次往后移动
替换:
list.set(索引值,元素); 在集合指定索引位置更改元素(将该索引值位置的元素替换为新输入的元素)
它的返回值为该集合原本在该位置的元素
删除:
list.remove(索引值); 删除指定位置的元素
public class ArrayList1 {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
//添加
list1.add("python");//创建的String类型的列表就只能添加字符串类型的数据
list1.add("java");
list1.add(1, "c");//在指定索引位置插入指定元素
System.out.println(list1);
//替换
//String str=list1.set(1,"c");
//System.out.println(str);
//System.out.println(list1);
//删除
String name1 = list1.remove(2);//list.remove的返回值为删除的元素
System.out.println(name1);//输出为java
System.out.println(list1);//输出为[python,c]
}
}
3.ArrayList集合元素的查找与遍历
list.get(索引值); 返回指定索引位置的元素
list.size(); 返回元素的个数
import java.util.ArrayList;
public class ArrayList1 {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
list1.add("python");
list1.add("java");
list1.add("c");
System.out.println(list1.get(0));//获取某索引位置的元素
int size = list1.size();//获取集合长度
System.out.println(size);
for (int i = 0; i < list1.size(); i++) {//遍历集合
System.out.println(list1.get(i));
}
}
}
4.ArrayList集合的实例运用—>将随机数添加在集合中并输出
import java.util.ArrayList;
import java.util.Random;
public class ArrayList2 {
public static void main(String[] args) {
ArrayList<Integer> list2 = new ArrayList<>();
Random r = new Random();
for (int i = 0; i < 10; i++) {
int num = r.nextInt(50);
//表示产生0~49的随机数,若要产生1~50的随机数可表示为 r.nextInt(50)+1;
list2.add(num);
}
System.out.println(list2);
}
}