学习目标
- 掌握List接口
提示:以下是本篇文章正文内容,案例仅供参考
一、List接口
1.添加
- 单个元素添加、单个元素指定下标添加
示例代码:
li.add("Tom");
li.add("Sad");
li.add("Jerry");
li.add(2,"xxx"); //添加位置是数组下标
- 多个元素添加,多个元素指定下标添加
示例代码:
li1.add("xsd");
li1.add("xhc");
li.addAll(li1);
li.addAll(1,li1); //插入位置从数组指定的数组下标位置开始
2.替换
示例代码:
li.set(1,"cherry"); //指定位置替换,替换位置为数组下标
3.移除元素
- 指定元素移除
示例代码:
li.remove("Sad");
list.remove(new Integer(300)); //数字默认是数组下标
list.remove(0); //使用下标移除的优先级更高
System.out.println(list);
- 指定下标移除
示例代码:
li.remove(4); //数组下标
4.获取指定元素
- 获取指定数组下标元素
示例代码:
System.out.println(list.get(0));
5.获取指定元素的下标
示例代码:
System.out.println(list.indexOf(100)); //获取集合第一次出现索引的位置
System.out.println(list.lastIndexOf(100)); //获取集合最后一次出现索引的位置
6.截取List
示例代码:
System.out.println(list.subList(1, 3)); //返回两个数的集合,前闭后和,从1开始到3之前结束(2结束)
二、List遍历
示例代码:
public class TestTwo {
public static void main(String[] args) {
// List接口的遍历
List list = new ArrayList();
list.add("Tom");
list.add("Jerry");
list.add("Mary");
list.add("June");
Iterator iter = list.iterator();
while(iter.hasNext()){
String s = (String)iter.next();
System.out.println(s.toUpperCase());
}
System.out.println("-------------------------------------");
for(Object o : list){
String s = (String)o;
System.out.println(s.toUpperCase());
}
System.out.println("---------------------------------------");
for (int i = 0; i < list.size(); i++) {
String s = (String)list.get(i);// 使用下标获取元素
System.out.println(s.toUpperCase());
}
}
}
三、List特点
- 允许重复元素,且有下标。
- 底层使用可变长的数组实现,初始化长度为10,不够时进行1.5倍扩容。
- List有序,怎么存怎么输出。
- 不允许有效元素前有空位。
总结
1、List和Collection不同的是,遍历List可以进行有下标的遍历。三种遍历方式,Collection就两种。
2、LinkedList的特点:LinkedList底层使用双向链表实现。
3、ArrayList实现类遍历效率高,频繁存取效率低,LinkedList遍历效率低,频繁存取效率高。
4、LinkedList拥有一套对首尾元素单独操作的方法。