ArrayList与顺序表
短信预约 -IT技能 免费直播动态提醒
文章目录
一. 顺序表是什么
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。
二. ArrayList是什么
在集合框架中,ArrayList是一个普通的类,实现了List接口,它有以下几个特点:
- ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。
- ArrayList支持随机访问,但其插入和删除效率低。
- ArrayList是可以clone的,是支持序列化的。
- ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者CopyOnWriteArrayList。
三. ArrayList的构造方法
ArrayList提供了以下三种构造方法
方法一:也是最推荐的方法
// 构造一个空的列表List<Integer> list = new ArrayList<>();
方法二:
// 构造一个具有10个容量的列表List<Integer> list = new ArrayList<>(10);
方法三:
List<Integer> list = new ArrayList<>(10);List<Integer> list2 = new ArrayList<>(list);
重点
对顺序表进行初始化的时候,一定要指定元素的类型,否则,任意类型的元素都可以存放,会造成严重后果。
四. ArrayList的常见方法
4.1 add()
public static void main(String[] args) { List<Integer> list=new ArrayList<>(); //此处的add():将元素尾插进ArrayList中 list.add(1); list.add(2); System.out.println(list); //此处的add():在list的index位置插入指定元素,index及后续的元素统一往后搬移一个位置 list.add(1,10); System.out.println(list);}
4.2 size()
获取list中有效元素个数
public static void main(String[] args) { List<Integer> list=new ArrayList<>(); list.add(1); list.add(2); System.out.println(list); // 获取list中有效元素个数 System.out.println(list.size()); }
4.3 remove()
public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("苹果"); list.add("香蕉"); System.out.println(list); // 删除指定元素,找到了就删除,该元素之后的元素统一往前搬移一个位置,这里没有找到 list.remove("梨"); System.out.println(list); //删除list中index位置上的元素,这里要注意 index 是否有效 list.remove(1); System.out.println(list); }
4.4 get()
public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("苹果"); list.add("香蕉"); //获取index位置上的元素,注意index是否有效(index必须介于[0,size)间) System.out.println(list.get(0)); }
4.5 set()
public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("苹果"); list.add("香蕉"); //设置index位置上的元素为指定元素,注意index是否有效 list.set(1,"梨"); System.out.println(list.get(1)); System.out.println(list); }
4.6 contains()
public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("苹果"); list.add("香蕉"); //查看list中是否包含指定元素,包含返回true,否则返回false if(list.contains("西瓜")){ System.out.println("list中包含西瓜元素"); }else{ System.out.println("list中不包含西瓜元素"); } }
4.7 lastIndexOf()和 indexOf()
public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("苹果"); list.add("香蕉"); list.add("梨"); list.add("苹果"); // 查找指定元素第一次出现的位置:indexOf从前往后找,lastIndexOf从后往前找 System.out.println(list.indexOf("苹果")); System.out.println(list.lastIndexOf("苹果")); }
4.8 subList()
public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("苹果"); list.add("香蕉"); list.add("梨"); list.add("苹果"); // 截取list中[0, 2)之间的元素构成一个新的ArrayList返回 List<String> list2=list.subList(0,2); System.out.println(list2); }
4.9 clear()
清空ArrayList中的元素。
以上就是ArrayList的常见方法!!
来源地址:https://blog.csdn.net/m0_63904107/article/details/132546735
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341