Java中创建List接口、ArrayList类和LinkedList类的常用方法(一)

这篇具有很好参考价值的文章主要介绍了Java中创建List接口、ArrayList类和LinkedList类的常用方法(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

List接口

要了解List接口,就不得不说起Java的集合框架。
Java中创建List接口、ArrayList类和LinkedList类的常用方法(一),Java语言基础,java,list,算法,蓝桥杯,职场和发展,Java框架,开发语言
(该图来自菜鸟教程)

Collection接口和Map接口

Java 集合框架主要包括两种类型的容器,集合Collection和图Map。

  • Collection接口代表了单列集合,它包含了一组Object元素,每个元素都有一个值。
    (这里有个“泛型擦除”的概念,在此不提及有兴趣可自行了解)
  • Map接口代表了双列集合,它包含了一组键值对,每个键值对包含两个值,一个是键,一个是对应的值。

List

Collection 接口又有 3 种子类型,List、Set 和 Queue。

  • List 接口存储一组不唯一,有序(插入顺序)的对象。
    1. 不唯一:允许存储重复的元素。
    2. 有序:可以精准控制元素添加的位置,因此可以根据索引访问元素。
    3. <实现类有ArrayList,LinkedList,Vector> 。
  • Set 接口存储一组唯一,无序的对象。
    1. 唯一:元素不允许重复。
    2. 无序:没有定义顺序,元素的存储顺序可能与添加顺序不同。
  • Queue接口:一个先进先出(FIFO)的集合,通常用于模拟队列数据结构。

静态数组

概念

  1. 是一种线性数据结构。
  2. 相同类型的元素存储在连续的内存空间中。

初始化

java中两种创建静态数组的形式如下,

 int[] array = new int[5];  // { 0, 0, 0, 0, 0 } 
 int[] iarray = { 1, 2, 3, 5, 4 }; 
    • 第一行代码创建了一个名叫array的数组,长度大小为5,并且数组的长度大小不能改变
    • 注释的意思是,java会自动给数组内的元素赋值为默认值,即int型的默认值0。
  1. 第二行代码创建了一个名叫iarray的数组,长度大小为5,并且长度大小也无法改变,且编写者主动赋值为一到五的数字。

ArrayList类

Java中创建List接口、ArrayList类和LinkedList类的常用方法(一),Java语言基础,java,list,算法,蓝桥杯,职场和发展,Java框架,开发语言

概念和性质

  • ArrayList 继承了 AbstractList类 ,并实现了 List 接口
    (AbstractList是List接口的抽象实现类,它继承自AbstractCollection类,并实现了List接口中的方法。)
  • ArrayList基于动态数组实现,内部使用一个数组来存储元素,当数组容量不足时,会进行扩容操作,通常创建一个新的更大的数组,并将原数组的元素复制到新数组中。
  • 插入删除性能
    1. 倘若在末尾进行插入和删除操作的性能较好
    2. 但若在中间或开头进行插入删除操作时,需要移动后续元素,性能较差。
  • 随机访问性能支持通过索引进行快速的随机访问,效率较快。

使用

初始化

ArrayList初始化的基本格式如下,

import java.util.ArrayList; // 引入 ArrayList 类

ArrayList<ElemType> objectName =new ArrayList<>();  // 初始化

ElemType是数组中对象(元素)的引用类型数据,objectName是数组名字。
(注意注意下文中的Element是ElemType引用类型的基本类型。)


(因为实际ArrayList中的元素是对象,所以需要引用类型)
(String可以像使用基本类型一样,但实际是引用类型)

基本类型 引用类型
boolean Boolean
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character

例如,

import java.util.ArrayList; 

ArrayList<Integer> arrayList =new ArrayList<>();  

避免繁琐后边的代码例子中引入 ArrayList 类就不写了。

add() 添加元素

ArrayList<ElemType> objectName =new ArrayList<>();
objectName.add(ElemType e);
objectName.add(InterPre i, ElemType e);

可以看到,add()函数有两种添加方法,

  • 直接在数组的末尾添加元素e
  • 索引 i 前面添加元素e
    如,
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(0,6);
for(int i : arrayList) System.out.print(i + " ");//这里的for循环迭代是依次得到数组中的元素,后边会讲
//输出:6 1 2 3 

remove() 删除元素

ArrayList<ElemType> objectName =new ArrayList<>();
objectName.remove(index i);

作用:删除索引为 i 上的元素,如

ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.remove(2);
for(int i : arrayList) System.out.print(i + " ");
//输出:1 2

get() 访问元素

ArrayList<ElemType> objectName =new ArrayList<>();
objectName.get(index i);

作用:返回索引为i处上的元素,如

ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
System.out.println(arrayList.get(2));
//输出:3

set() 修改元素

ArrayList<ElemType> objectName =new ArrayList<>();
objectName.set(index i, ElemType e);

作用:将索引为 i 上的元素修改为 e,如

ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.set(1,6);
for(int i : arrayList) System.out.print(i + " ");
//输出:1 6 3

size() 元素数量

int ArrayLength = arrayList.size();

作用:**返回数组的长度,**赋值给ArrayLenth。如,

ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
System.out.println(arrayList.size());
//输出:3

其余函数

下面就不给出示例代码和输出结果啦,太多了,但是会给出基本格式和用法。

ArrayList<ElemType> arraylist =new ArrayList<>();
  • void arraylist.clear() :删除arraylist 中的所有元素

  • boolean arraylist.contains(ElemType e) :判断元素e是否在arraylist中,如果在返回true,否则返回false

  • int arraylist.indexOf(ElemType e) :返回元素e在arraylist中的索引
    • 若重复出现,返回最先的索引值;
    • 若不存在,返回-1。

  • boolean arraylist.isEmpty() :判断arraylist是否为空,为空返回true,否则返回false

  • void arraylist.removeAll() :作用与arraylist.clear()相同,但是arraylist.clear()时间更快。

  • void arraylist.sort(): 将数组排序,使用方法这里略过后面详细说明。

  • Elem[] arraylist.toArray(Elem[] num) :将arraylist转化为数组赋给num,数组的元素类型为同引用类型的基本类型。

  • String arraylist.toString():将arraylist转化为String类型返回。

迭代数组列表

第一种,通过普通for循环迭代,依次输出arraylist中的元素。

ArrayList<ElemType> arraylist = new ArrayList<>();
/*
......
(赋值操作)
*/
for (int i = 0; i < arraylist.size(); i++) 
	System.out.println(arraylist.get(i));

第二种,通过for-each迭代,依次输出arraylist中的元素,也就是上文给出的方式。

ArrayList<ElemType> arraylist = new ArrayList<>();
/*
......
(赋值操作)
*/
for (Element e : arraylist) 
	System.out.println(e);

注意Element是ElemType引用类型的基本类型。

ArrayList排序

借助Collections 类

import java.util.Collections;  // 引入 Collections 类

Collections.sort(arraylist);

注意Collections.sort()是升序排序(从小到大)。

本身的sort() 方法

arraylist.sort(Comparator c)

Comparator c 的意思是排序方式,分别为升序和降序。文章来源地址https://www.toymoban.com/news/detail-805302.html

  • 升序参数为 Comparator.naturalOrder()
  • 降序参数为 Comparator.reverseOrder()
    注意要使用这两个参数,需要引入Comparator类。
    实例如下,
import java.util.Comparator;

arraylist.sort( Comparator.naturalOrder()) ;
//得到数组升序排序的结果(从小到大)
arraylist.sort( Comparator.reverseOrder());
//得到数组降序排序的结果(从大到小)

到了这里,关于Java中创建List接口、ArrayList类和LinkedList类的常用方法(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【List】List集合有序测试案例:ArrayList,LinkedList,Vector(123)

    List是有序、可重复的容器。 有序: List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问 元素,从而精确控制这些元素。 可重复: List允许加入重复的元素。更确切地讲,List通常允许满足 e1.equals(e2) 的元素重复加入容器。 List接口常用的实现类有3个:

    2024年02月11日
    浏览(46)
  • Java ArrayList 与 LinkedList 的灵活选择

    Java ArrayList 类是一个可变大小的数组,位于 java.util 包中。 for 循环: for-each 循环: ArrayList 是 Java 中常用的数据结构,它可以存储各种类型的数据,并且可以根据需要调整大小。 ArrayList 的优势: 可变大小 可以存储各种类型的数据 提供多种方法来访问、修改和删除元素 可以使用

    2024年03月09日
    浏览(59)
  • Java链式存储LinkedList----与ArrayList比较

    作为一名对技术充满热情的学习者,我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代,我远非专家,而是一位不断追求进步的旅行者。通过这篇博客,我想分享我在某个领域的学习经验,与大家共同探讨、共同成长。请大家以开放的心态阅读,相信

    2024年01月23日
    浏览(49)
  • java源码----集合系列1----ArrayList,linkedList

    底层是一个object数组 Arraylist 是java里面Collection  标准的一个集合,其 底层是一个object数组 。当new一个空参的ArrayList的时候,会默认生成一个空数组。 Arraylist上限是 Integer.MAX_VALUE - 8(Integer.MAX_VALUE  =  2^31-1) ; 超过上限会报内存溢出 这里为什么是Integer.MAX_VALUE-8  ,源码上的解

    2024年02月03日
    浏览(44)
  • 【java】LinkedList 和 ArrayList的简介与对比

    Java LinkedList和 ArrayList 在使用上,几乎是一样的。由于LinkedList是基于双向链表的,会多出list.getFirst();获取头部元素等方法 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。 链表可

    2024年02月11日
    浏览(44)
  • java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?

    目录 基本介绍 有什么不同?? ArrayList的扩容机制 ArrayLIst的基本使用 ArrayList和Vector 还记得我们的java集合框架吗, 我们来复习一下, 如图:          可以看出来 ArrayList和LinkedList 都是具体类, 他们都是接口List的实现类. 但是他们底层的逻辑是不同的, 相信学过这个的应该大概有个

    2024年02月12日
    浏览(40)
  • java面试基础 -- ArrayList 和 LinkedList有什么区别

    目录 基本介绍 有什么不同?? ArrayList的扩容机制 ArrayLIst的基本使用 ArrayList和Vector 还记得我们的java集合框架吗, 我们来复习一下, 如图:          可以看出来 ArrayList和LinkedList 都是具体类, 他们都是接口List的实现类. 但是他们底层的逻辑是不同的, 相信学过这个的应该大概有个

    2024年02月12日
    浏览(53)
  • [java数据结构] ArrayList和LinkedList介绍与使用

    (一) 线性表 (二) ArrayList 1. ArrayList的介绍 2. ArrayList的常见方法和使用 3. ArrayList的遍历 4. ArrayList的模拟实现 5. ArrayList的优缺点 (三) LinkedList 1. LinkedList的介绍 2. LinkedList的常见方法和使用 3. LinkedList的遍历 4. LinkedList的模拟实现 5. LinkedList的优缺点 (四) ArrayList和LinkedList的区别

    2024年01月21日
    浏览(46)
  • Java:ArrayList集合、LinkedList(链表)集合的底层原理及应用场景

    入队 出队 压栈(push),addFirst可以替换成push,官方专门为压栈写了push的API 出栈(pop),removeFirst可以替换成pop,官方专门为出栈写了pop的API

    2024年02月12日
    浏览(40)
  • java八股文面试[数据结构]——ArrayList和LinkedList区别

      ArrayList和LinkedList的异同 二者的线程都不安全,相对线程安全的Vector,执行效率高。此外,ArrayList时实现了基于动态数组的数据结构,LinkedList基于链表的数据结构,对于随机访问get和set,ArrayList觉得优于LinkedList比较占优势,因为LinledList要移动指针。对于新增和删除操作add

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包