package com.atguigu.java;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
* /----collection接口:单列集合,用来存储一个一个的对象
* /----List接口:存储有序的、可重复的数据。-->“动态”数组,替换原有的数组
* /----ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[]存储
* /----LinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高;底层使用双向链表存储
* /----Vector:作为List接口的古老实现类;线程安全的,效率低;底层使用Object[]存储
* <p>
* <p>
* void add(int index,Object ele):在index位置插入ele元素
* boolean addAll(int index,collection eles):从index位置开始将eLes中的所有元素添加进来
* Object get(int index):获取指定index位置的元素
* int indexOf(object obj):返回obj在集合中首次出现的位置
* int lastIndex0f(object obj):返回obj在当前集合中末次出现的位置
* Object remove(int index):移除指定index位置的元素,并返回此元素
* Object set(int index,object ele):设置指定index位置的元素为eLe
* list sublist(int fromIndex,int toIndex):返回从fromIndex到toIndex位置的子集合
*/
public class ListTest {
@Test
public void test1() {
ArrayList list = new ArrayList(60);
list.add(123);
list.add(456);
list.add("AA");
list.add(new Person("Tom", 12));
System.out.println(list);
//void add(int index,Object ele):在index位置插入ele元素
list.add(1,"BB");//[123, BB, 456, AA, Person{name='Tom', age=12}]
//boolean addAll(int index,collection eles):从index位置开始将eLes中的所有元素添加进来
List<Integer> list1 = Arrays.asList(1, 23, 4, 5);
list.addAll(list1);//list.size() = 9
//list.add(list1)//list.size() = 6;
System.out.println(list);//[123, BB, 456, AA, Person{name='Tom', age=12}, 1, 23, 4, 5]
//Object get(int index):获取指定index位置的元素
Object o1 = list.get(2);//456
//int indexOf(object obj):返回obj在集合中首次出现的位置
int index = list.indexOf(456);//2
list.indexOf(45611);//不存在,-1
//int lastIndex0f(object obj):返回obj在当前集合中末次出现的位置
int index1 = list.lastIndexOf(456);//2
//Object remove(int index):移除指定index位置的元素,并返回此元素
Object removeObj = list.remove(2);//removeObj = 456
System.out.println(list);//[123, BB, AA, Person{name='Tom', age=12}, 1, 23, 4, 5]
//Object set(int index,object ele):设置指定index位置的元素为eLe
list.set(0,"CC");//list = [CC, BB, AA, Person{name='Tom', age=12}, 1, 23, 4, 5]
//list sublist(int fromIndex,int toIndex):返回从fromIndex到toIndex位置的左闭右开子集合
List subList = list.subList(2, 6);
System.out.println(subList);//subList = [AA, Person{name='Tom', age=12}, 1, 23]
System.out.println(list);//;list = [CC, BB, AA, Person{name='Tom', age=12}, 1, 23, 4, 5]
}
/**
* 常用方式
* 增: add(Object obj)
* 删: Object remove(int index) / void remove(Object obj)
* 改: set(int index, Object ele)
* 查: get(int index)
* 插: add(int index,Object ele)
* 长度: size()
* 遍历:Iterator迭代器方式
* 增强for循环
*
*
*/
@Test
public void test2(){
ArrayList list = new ArrayList(60);
list.add(123);
list.add(456);
list.add("AA");
//
Iterator iterator = list.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//
for(Object obj: list){
System.out.println(obj);
}
//
}
}