首先我们来看一下java集合的继承关系:
值得注意的有以下几点:
1.java的集合中只能存储对象!!!
2.Object[] 多态特性 java对象
3.基本数据类型,存储到集合中,会自动执行装箱操作
4.泛型:java在jdk5.0时引入的新特性,在容器定义时,规定容器存储的数据类型
5.在定义java容器时,必须泛型
ArrayList的用法如下:
package com.openlab.day16.collection;
import static org.junit.jupiter.api.Assertions.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;
import org.junit.jupiter.api.Test;
class TestArrayList {
@Test
void test01() {
ArrayList al=new ArrayList();
al.add(123);
al.add("韩嘉馨");
al.add(true);
//在对应位置添加元素
al.add(0,"邹海清");
System.out.println(al);
al.add(100,"会报错吗?");//会报错,因为下标越界
}
@Test
void test02() {
Collection collection = new ArrayList();
collection.add("孙悟空");
collection.add("猪八戒");
collection.add("沙僧");
System.out.println(collection);
}
@Test
void test03() {
List list = new ArrayList();
list.add("孙悟空");
list.add("猪八戒");
list.add("沙僧1");
System.out.println(list);
//多个元素
System.out.println(list.size());
list.clear();
System.out.println(list.size());
System.out.println(list);
}
@Test
void test04() {
List list=new ArrayList();
User swk=new User("swk", "123", "aa", 800);
list.add(swk);
list.add(new User("zbj", "123", "bb", 800));
list.add(new User("ss", "123", "cc", 800));
list.add(new User("ts", "123", "dd", 800));
list.add(1);//int i=new Integer();Integer ii=i.valueOf(1);
list.add(2);
list.add(3);
list.add(4);
list.remove(swk);
System.out.println(list);
//删除的是下标为4的呢?还是值为4的呢?
//答:删除的是下标为4的元素,
list.remove(4);
System.out.println(list);
//注意:基本数据类型,本质操作的还是包装类
//包装类有两种装箱方式:
//1.new一个包装类对象;
//2.使用包装类中的方法valueOf,比如:Integer.valueOf(4);
list.remove(Integer.valueOf(4));
System.out.println(list);
}
//泛型
@Test
void test05() {
List<Integer> list=new ArrayList<Integer>();
list.add(123);
list.add(456);
}
@Test
void test06() {
//jdk7.0提供了新特新性,也就是泛型可以省略后面一个;
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
}
//ArrayList的遍历方式
@Test
void test07() {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
@Test
void test08() {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
for (Integer i : list) {
System.out.println(i);
}
}
@Test
void test09() {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
list.forEach(new Consumer<Integer>() {
@Override
public void accept(Integer t) {
System.out.println(t);
}
});
}
@Test
void test10() {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
Iterator<Integer> it=list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}