List的基本运用和常用API
List是collection的子接口,集合List中的元素有三个特点1.元素都是有序排列 2.元素都有下标 3.元素可以重复
List常用的方法有:
添加元素的方法: add( )
List list = new ArrayList(); // 因为list是接口所有要用多态进行初始化
list.add("a"); //add一个元素,直接在集合的最后一位添加
list.add("b");
//add(int i, Object obj);选定一个下标,在下标处插入这个元素,这里要注意的是下标不要越界
list.add(0, "c");
删除元素的方法: remove( )
List list = new ArrayList();
list.add("a");
list.add("b");
list.add(0, "c");
list.remove("a");//删除元素
list.remove(0);//删除下标处的这个元素
获取某个位置的元素:get()
List list = new ArrayList();
list.add("a");
list.add("b");
list.add(0, "c");
list.get(1);//根据下标进行取值
修改某个位置上的元素:set()
list.add("a");
list.add("b");
list.add(0, "c");
list.set(0, "d");//根据下标修改该处的值
移除某个位置上的元素 remove()
List list = new ArrayList();
list.add("a");
list.add("b");
list.add(0, "c");
list.remove("a");//移除集合中"a"元素
list.remove(0);//移除集合中下标为0的元素
List的迭代器:这里我们要注意的是list有专门的迭代器,也继承了父接口中的迭代器,下面我们来看一下两者的区别
需求:遍历一个集合,如果该集合中含有”a”,就在”a”的后面添加一个”HelloWorld”:
List List = new ArrayList();
List.add("a");
List.add("b");
List.add("c");
List.add("d");
ListIterator listIterator = List.listIterator();
while (listIterator.hasNext())
{
//这一步是向下转型
String string = (String)listIterator.next();
//注意⚠️⚠️:这里的迭代器要使用自己特有的迭代器,使用父类的迭代器是可以遍历集合的,但是父类的迭代器没有添加元素的方法,迭代器在迭代的过程中,是不能修改的,否则会出现并发修改异常,自己特有的迭代器有添加的方法,可以在迭代的过程中修改集合
if (listIterator.next().equals(string))
{
listIterator.add("HelloWorld");
}
}
Vector的基本用法
Vector是java1.0出现的,Collection是在java1.2出现的,所以Vector中有一些方法不同的,Vector的底层实现是数组,我们主要学习一下Vector特有的遍历方法和迭代器的用法差不多
Vector vector = new Vector();
vector.addElement("a");
vector.addElement("b");
vector.addElement("c");
vector.addElement("d");
//获得枚举,用法其实是和迭代器一样的
Enumeration enumeration = vector.elements();
while (enumeration.hasMoreElements())
{
System.out.println(enumeration.nextElement());
}
LinkedList的基本用法和API
LinkedList的底层实现是链表,LinkedList的优点是增删的时候比较快,但是查找起来相对于数组是比较慢的
LinkedList中有一些特有的方法:
添加元素addLast()和addFirst()
LinkedList linkedList = new LinkedList();
linkedList.addLast("a");//在集合的最后添加元素
linkedList.addLast("b");
linkedList.addFirst("c");//在集合的开始添加元素
linkedList.addFirst("d");
获取集合中的元素 getFirst(),getLast(),get(int i)
LinkedList linkedList = new LinkedList();
linkedList.add("a");
linkedList.add("b");
linkedList.add("c");
linkedList.add("d");
//获取头尾元素
System.out.println(linkedList.getFirst());//获取集合最开始的元素
System.out.println(linkedList.getLast());//获取集合最后一位的元素
//根据下标获取元素
System.out.println(linkedList.get(1));
ArrayList的基本用法和API
在java1.2后,ArrayList基本上取代了Vector,ArrayList的底层实现是数组
相对于LinkedList的链表实现,,数组的特点是查询的时候比较快,但是增删元素的时候相对比较慢