一、不能改变ArrayList序列的长度
您可以自由更改ArrayList集合的长度
ArrayList有总称的含义
泛型:这意味着集合中的所有元素都是统一的
注意:泛型类型是引用类型,不是基本数据类型
错误的写法: ArrayListint list1=new ArrayList (; ArrayList直接打印得到的不是地址而是内容,如果内容为空,则得到空的大括号【】
ArrayList常用方法: publicbooleanadd[e]:向集合中添加元素,参数类型和通用性匹配。
返回值指示是否成功添加。
公共代理(索引) :从集合中检索元素。 参数是索引号,返回值是对应位置的元素
公共移除(索引) :从集合中删除元素。 参数是索引号,返回值是已删除的元素
public int size () :获取集合的大小长度,返回值是集合中包含的元素数
常用方法演示:
publicclassarraylistdemo1{ publicstaticvoidmain (字符串[ ] args )//创建了字符串类型的数据ArrayList集合。 集合名称为list,其中包含字符串类型的数据ArrayList//add )集合中的数据list.add ('赵丽颖'); list.add (高圆圆); list.add (赵又廷); 刘亦菲list.add; 布尔标志=list.add (杨幂); system.out.println (列表; //[赵丽颖、高圆圆、赵又廷、刘亦菲、杨幂] System.out.println ('动作添加是否成功' flag ); //添加操作是否成功从true//集合中获取元素,get (,索引值为0到String name=list.get(2) ); System.out.println (索引号2 ) name ); //索引号2 (赵又廷)//从集合中删除元素,删除),索引值0到String whoremove=list.remove(1) )1); System.out.println ('删除的是'世卫组织移除); //被删除的是高圆system.out.println(list ); //[赵丽颖、赵又廷、刘亦菲、杨幂] //集合大小长度int length=list.size (); System.out.println ('集合的长度为' length ); (二、LinkedList java.util.LinkedList集合实施列表接口
链接列表集合的特点:
1、最低层为链表结构。 查询慢,删除快
2、一种包含操作首尾多个要素的方法
注意:不能使用特定于链接列表集合的方法来使用多态性
链接列表集合的常用方法:
Ublicvoidaddfirst(e )元素将添加到头部。
Ublicvoidaddlast(e )元素将添加到尾部。
公共语音推送(e )将元素推入此列表表示的堆栈中
public E removeFirst ()将被删除并返回到第一个元素。
public E removeLast ()删除并返回最后一个元素。
public E pop ) )元素将弹出到此次列表显示的堆栈中
公共获取第一个) )返回第一个元素。
public E getLast ()返回最后一个元素。
常用方法演示:
publicclasslinklistdemo { publicstaticvoidmain (string [ ] args ) { show01 ); } privatestaticvoidshow 01 ((linkedliststringsites=newlinkedliststring ) ); sites.add (谷歌); sites.add(runOOB ); sites.add(Taobao ); sites.add(Weibo ); system.out.println(sites ); 使用addFirst (,在头部添加名为sites.addfirst ) ' wiki '的元素; system.out.println(sites ); 使用addLast (在末尾添加元素sites.addlast ) ' wiki '; system.out.println(sites ); 使用//push(e ),此列表指示的堆栈sites.push ) ' AAA ); system.out.println(sites ); 使用getFirst (获取头部元素system.out.println ) sites.getfirst ); 使用getLast (获取末尾元素system.out.println ) sites.getlast ); removeFirst ) )使用头部元素sites.removeFirst ); system.out.println(sites ); 使用removeLast (结尾元素sites.removeLast ); system.out.println(sites ); //pop )此列表中显示的堆栈上弹出一个名为system.out.println的元素(sites.pop ); } [谷歌,Runoob,Taobao,Weibo[Wiki,Google,Runoob,Taobao,Weibo][Wiki,Google,Runoob,Taobao,Weibo Wiki][Wiki,Google,Runoob,Taobao,Weibo]Wiki三,Weibo随机访问效率:与链接列表相比,ArrayList在随机访问时更高效。 由于链接列表是线性的数据存储方法,因此必须移动指针,从目的地开始按顺序查找。 添加和删除效率:在失败的添加和删除操作中,ArrayList添加和删除操作会影响数组中其他数据的下标,因此链接列表比ArrayList更高效。
内存使用情况:链接列表比阵列列表消耗更多内存。 因为链接列表的节点包含两个引用:前一个元素和后一个元素,而不仅仅是数据。 线程安全: ArrayList和链接列表不同步。 也就是说,不保证线程安全。总的来说,如果需要经常读取集合中的元素,建议使用ArrayList;如果有很多插入和删除操作,建议使用链接列表。
补充:作为数据结构基础的双向链表
双向链表,也称为双链表,是一种链表,每个数据节点都有两个指针,分别指向直接后继和直接前驱。 因此,可以从双向链表的任一节点方便地访问其前驱节点和后继节点。