ArrayList类
1、ArrayList集合类与数组的区别
ArrayList:集合长度可变
Arrays:数组长度不可变,一旦声明定义的话
2、泛型解释
泛型通俗讲是一个容器,装集合中所有元素的容器
特点:泛型只能是存储引用类型,不能是基本类型
问题来了,我就要在ArrayList集合中存储基本数据类型!!!
解决方法→必须使用基本类型对应的包装类
问题又来了,包装类是啥???
解释:通俗讲就是让基本类型的变量之间能相互转换,不受强转的限制
基本数据类型→包装类
byte→Byte
short→Short
int→Integer
long→Long
float→Float
double→Double
char→Character
boolean→Boolean
包装类也是引用数据类型,在java.lang包下。
从JDK1.5+开始,支持自动装箱(基本类型→包装类),自动拆箱(包装类→基本类型)
3、ArrayList集合中基本的方法
add():在集合中默认在最后添加元素
public boolean add(E e);
get():获取指定索引的元素
public E get(int index);
remove():移除指定索引的元素
public E remove(int index);
size():获取集合元素个数
public int size();
4、ArrayList练习
1.生成10个1-50之间的偶数的随机数
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 10; i++) {
int s = random.nextInt(50) + 1;
list.add(s);
}
ArrayList<Integer> even = getEvenList(list);
System.out.println(list);
}
public static ArrayList<Integer> getEvenList(ArrayList<Integer> oriList){
ArrayList<Integer> evenList = new ArrayList<>();
for(int i = 0; i < oriList.size(); i++){
int num = oriList.get(i);
if(num % 2 == 0){
evenList.add(num);
}
}
return evenList;
}
输出:
[22, 44, 15, 18, 26, 19, 2, 50, 41, 40]
2.打印指定形式的集合
形式如右:{10@20@30@40}
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(20);
list.add(30);
list.add(40);
list.add(50);
System.out.print("{");
for (int i = 0; i < list.size(); i++) {
if (i == list.size() - 1) {
System.out.print(list.get(i)+"}");
} else {
System.out.print(list.get(i) + "@");
}
}
}
{10@20@30@40@50}