Java 两种基本列表详解

Java的两种列表

List:列表

  • 有序的Collection
  • 允许重复元素
  • 允许嵌套:{1,{1,2},1,2}

ArrayList:

  • 数组实现,不支持同步
  • 利用索引快速定位访问
  • 插入删除慢,因为每次插入/删除将会使后面元素向后/前移动
  • 适合变动不大,主要用于查询的数据
  • 和数组相比,其容量大小可动态调整

LinkedList:

  • 双向链表实现,不支持同步
  • 可被当作堆栈、队列、双端队列进行操作
  • 顺序访问高效,随机访问差
  • 插入和删除高效,因为只需改变元素指针,而无需移动元素
  • 适用于经常变化的数据

List的初始化:
声明的元素变量必须为封装类

ArrayList <Integer> array = new ArrayList<Integer>();
LinkedList <Integer> link = new LinkedList<Integer>();

List的遍历:

  • 迭代器(Iterator)遍历:
 Iterator<Integer> iter1 = array.iterator(); //使用Iterator迭代器
 Iterator<Integer> iter2 = link.iterator();   
 while(array.hasNext()){  
	array.next();  
}
while(link.hasNext()){  
	link.next();  
}
  • 索引遍历
for(int i=0;i<array.size();i++) {
		array.get(i);
}
for(int i=0;i<link.size();i++) {
		link.get(i);
}	
  • for-each遍历
 for(Integer item : array)	{
 	;
}
 for(Integer item : link)	{
 	;
}

列表常用的方法:

*注:下列某些方法是LinkedList或ArrayLisrt独有的*
方法名返回类型方法作用
add(E e)boolean将指定元素添加到列表末尾
addfirst(E e)boolean将指定元素插入到开头(LinkedList)
clear()void清除所有元素
contains(Object o)boolean如果列表包含指定元素,则返回true
element()E检索但不删除第一个元素(LinkedList)
get(int index)E返回指定索引的值
getfirst()boolean返回第一个元素(LinkedList)
peek()E检索但不删除第一个元素(LinkedList)
poll()E检索并删除第一个元素(LinkedList)
remove()E检索并删除第一个元素
remove(int index)E检索并删除指定元素
set(int index, E element) E用指定的元素替换此列表中指定位置的元素(ArrayList)
toArray()Object[ ]按序返回一个包含此列表所有元素的数组
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值