List
1.List接口是Collection接口的子接口
2.List是有序的集合,存储元素和取出元素是一致的(存ABC,取ABC)
3.有索引,包含了一些带索引的方法(底层实现是使用数组,它是一个可变数组)
4.允许存储重复的元素
5.主要实现类:ArrayList
6.常用的方法:
| 方法 | 作用 |
|---|---|
| void add(int index, Object ele) | 在指定索引位置添加元素 |
| boolean addAll(int index, Collection eles) | 在指定索引位置添加一个集合 |
| Object get(int index) | 获取指定索引位置的元素 |
| int indexOf(Object obj) | 返回obj在集合中首次出现的索引位置,没找到就-1 |
| int lastIndexOf(Object obj) | 返回obj在集合中最后一次出现的索引位置,没找到就-1 |
| Object remove(int index) | 删除指定索引位置的元素 |
| Object set(int index, Object ele) | 对某个索引位置的元素进行设定 |
7.Java代码:
List list = new ArrayList();
//添加元素
list.add(123);
list.add("张三");
list.add(new String("eric"));
System.out.println(list);
list.add(0, 110);
System.out.println(list);
Object object = list.get(1);
System.out.println(object);
list.remove(0);
System.out.println(list.get(0));
list.set(0, 119);
list.add(119);
System.out.println(list);
int index = list.indexOf(119);
System.out.println(index);
int lastIndex = list.lastIndexOf(119);
list.addAll(0,Arrays.asList(new String[] {"王五","李 四","张三"}) );
System.out.println(list);
8)List集合注意事项
List list1 = null;//不在堆中分配内存
List list2 = new ArrayList();//堆中分了内存,但集合中无元素
//由于未分配具体实例,会报NullPointerException
//System.out.println(list1.size());
System.out.println(list2.size());
//在遍历集合之前通常要判断该集合是否为null且集合中是否有元素
if(list2!=null && list2.size()!= 0) {
for (int i = 0; i < list2.size(); i++) {
System.out.println(list2.get(i));
}
}
9.List集合中常用的实现类
1)ArrayList
----底层实现是使用数组的方式来实现(动态数组),允许包含所有元素类型。
----可以根据所有位置对集合进行快速的随机访问。
----向指定的索引位置插入元素或者删除元素速度比较慢。
2)LinkedList
----采用双向链表的方式来操作数据
----便于向集合中增加删除元素,效率高
----链表的形式操作数据,访问数据的速度比较慢
3)Vector(用的很少)
----底层实现也是使用数组的方式,是线程安全的,效率比较低
4)ArrayList和LinkedList的区别==(面试题目)==
----ArrayList使用数组实现,LinkedList使用双向链表实现
----对于随机访问get和set,ArrayList由于LinkedList,因为LinkedLinked要移动指针
----对于频繁的新增和删除操作(Add、remove)LinkedList优于ArrayList
1040

被折叠的 条评论
为什么被折叠?



