Java - 集合 - List
Posted 爱穿新衣服的姑凉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - 集合 - List相关的知识,希望对你有一定的参考价值。
1、List实现类:ArrayList、LinkedList、Vector
- ArrayList使用:
1 void test() { 2 //声明 3 List<String> testlist = new ArrayList<>(); 4 5 //添加元素 .add方法 6 testlist.add("中国"); //将元素添加到集合的末尾 7 testlist.add(1,"美国"); //将元素添加到指定的索引位置(索引从0开始,且要按顺序添加,否则编译报错) 8 testlist.add("法国"); 9 testlist.add("日本"); 10 //删除元素 .remove方法 11 testlist.remove(1); 12 //修改元素 .set方法 13 testlist.set(1,"新西兰"); 14 15 //获取元素 .get方法 16 System.out.println("索引为1的元素是:" + testlist.get(1)); 17 //获取集合元素个数 .size方法 18 System.out.println("集合元素个数是:" + testlist.size() ); 19 }
遍历元素的3种方法:
1 //元素遍历的3中方法:使用Iterator遍历、for循环遍历、foreach遍历 2 System.out.println("使用Iterator遍历:"); 3 Iterator<String> testlistIterator=testlist.iterator(); 4 while (testlistIterator.hasNext()){ 5 System.out.print(testlistIterator.next()); 6 System.out.print(" "); 7 } 8 9 System.out.println(""); //仅仅为了换行显示 10 System.out.println("使用for循环遍历:"); 11 for (int i=0;i<testlist.size();i++){ 12 System.out.print(testlist.get(i) + " "); 13 } 14 15 System.out.println(""); 16 System.out.println("使用foreach遍历:"); 17 for (String x:testlist) { 18 System.out.print( x + " "); 19 }
- LinkedList:LinkedList类的使用方法和ArrayList基本一样,只需修改下声明处的代码即可
List<String> testList = new LinkedList<>();
- Vector:
List<String> platformList = new Vector<>();
2、ArrayList、LinkedList、Vector的区别【面试常问点】
List实现类
|
ArrayList
|
LinkedList
|
Vector
|
底层实现
|
数组结构
|
双链表 |
数组结构
|
优势
|
查找效率高
|
插入删除效率高 |
查找效率高
|
线程安全
|
非线程安全
|
非线程安全
|
线程安全
|
扩容机制
|
默认增长为原来的1.5倍
|
不需要动态扩容
|
默认增长为原来的2倍
|
备注:
数组和链表的区别:
- 数组:是相同类型的元素按照一定顺序排列
- 链表:是一种物理存储单元上非连续,非顺序的存储结构
线程安全:即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,
并发环境下使用ArrayList或者LinkedList,可以调用Collections类的synchronizedList()方法
以上是关于Java - 集合 - List的主要内容,如果未能解决你的问题,请参考以下文章
201621123057 《Java程序设计》第9周学习总结