String[] arr=new String[2];
arr[0]="aa";
arr[1]="bb";
arr[3]="cc";
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
上面一段代码会出现数组下标越界的异常,更何况我们大部分情况下都是从前端接收数据,对于数据量更不可控
集合解决了Java中数组不能动态扩充的特性
collection与list和set还有其他集合的关系图**
collection存储的是一组不唯一、无序的对象
list存储的是一组不唯一有序(插入顺序)的对象
set存储一组唯一,无序的对象
List list=new List();这样是被new不出的,因为List是接口,接口是不能被实例化的
List list=new ArrayList();这样就可以,因为ArrayList是List 的实现类
List list=new LinkedList();这样也可以,因为LinkedList也是List的实现类
ArrayList:遍历元素和随机访问元素的效率比较高;
LinkedList:插入、删除元素的效率比较个;
ArrayList和LinkedList都有add添加元素的方法
List接口常用方法
1 boolean add(Object o)
在列表额末尾顺序添加元素,起始索引位置从0开始
1 for循环遍历List
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class FirstClass {
@Test
public void test() {
List list=new ArrayList();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
2 第二种for循环遍历,语法懂通不过,因为list.add添加元素的时候并不知道添加的是什么类型,所以就用到了泛型
3 List指定泛型添加元素,遍历List,List list=new ArrayList();指定泛型为String类型,打印直接打印变量s就好
语法结构:for(引用类型 变量:引用实例){}
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class FirstClass {
@Test
public void test() {