首页 > 其他分享 >List接口介绍和题目演练

List接口介绍和题目演练

时间:2024-12-06 13:34:20浏览次数:10  
标签:java ArrayList 元素 List 接口 util 数组 演练

List接口介绍、定义及特点

在Java中, List 接口是 java.util 包中的一部分,它继承自 Collection 接口。

一、定义和特点定义和特点

1. 有序集合

-  List 中的元素是有序的,这意味着可以通过索引(位置)来访问元素,索引从0开始。例如,在一个 List 中添加元素的顺序是 a 、 b 、 c ,那么它们的索引分别是0( a )、1( b )、2( c )。

2. 允许重复元素

- 与 Set 接口不同, List 允许存储重复的元素。例如,可以在 List 中添加多个相同的字符串。

3. 动态大小

-  List 的大小是动态的,可以根据需要增加或减少元素。

二、常用实现类

1.  ArrayList

- 基于数组实现: ArrayList 内部使用数组来存储元素。当添加元素超过数组容量时,它会自动创建一个更大的新数组,并将旧数组的元素复制到新数组中。
- 随机访问快:由于基于数组, ArrayList 在随机访问(通过索引访问)元素时非常快,时间复杂度为O(1)。
- 插入和删除慢:但是在中间插入或删除元素时,需要移动后面的元素,时间复杂度为O(n),其中n是列表中的元素数量。

2.  LinkedList

- 基于链表实现: LinkedList 内部使用双向链表来存储元素。每个节点包含元素本身以及指向前一个和后一个节点的引用。
- 插入和删除快:在 LinkedList 中插入或删除元素只需要修改节点的引用,时间复杂度为O(1)(如果是在列表两端操作)。
- 随机访问慢:但是随机访问元素时,需要从链表头或尾开始遍历,时间复杂度为O(n)。

3.  Vector

- 类似于 ArrayList ,但 Vector 是线程安全的。不过,由于同步机制, Vector 的性能通常比 ArrayList 低,在单线程环境下不推荐使用。

题目

image

RandomTest.java

点击查看代码
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        int [] number= new int[10];
        Random random = new Random();
        for(int i =0 ; i <number.length;i++){
            number[i] = random.nextInt(100)+1;
        }
        List<Integer> list  = new ArrayList<>();
        for(int j=0 ;j<number.length;j++){
            list.add(number[j]);
        }
        System.out.println(list);
    }
}

运行结果

image

代码解析:

首先导入java.util.List类,java.util.ArrayList类和java.util.Random类,分别用于处理列表和生成随机数,创建一个长度为10的整数数组number用于存储随机数,使用for循环,i小于数组的长度,将随机数存入数组number.创建一个ArrayList来存储整数,使用循环将number数组中的元素逐个加到list中,使用System.out.println方法将list内容打印。

标签:java,ArrayList,元素,List,接口,util,数组,演练
From: https://www.cnblogs.com/505-jw/p/18590564

相关文章

  • Number()的存储空间是多大?假如接口返回一个超过最大字节的数字怎么办?
    在JavaScript中,Number()表示的是JavaScript的Number类型,它遵循IEEE754标准,使用双精度浮点数来存储数字。这意味着Number类型占用64位(8字节)的内存空间。由于Number使用浮点数表示,它并不能精确地表示所有数字,尤其是在处理非常大或非常小的数字时。当接口返回一个......
  • 一个api接口从请求数据到请求结束共与服务器进行了几次交互?
    一个API接口从请求数据到请求结束,前端与服务器通常进行两次交互:请求(Request):前端发送请求到服务器。这是第一次交互。请求中包含了请求方法(例如GET,POST,PUT,DELETE等),URL,以及任何必要的请求数据(例如表单数据,JSON数据等)。响应(Response):服务器处......
  • C# 接口(Interface)
    接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。接口使得......
  • JavaScript中todolist操作--待办事项的添加 删除 完成功能
    效果图在文本框中输入内容点击添加按钮会在下面生成添加功能html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><......
  • ArrayList源码解析-JDK18
    引言ArrayList在JDK1.7和1.8中的差距并不大,主要差距以下几个方面:JDK1.7在JDK1.7中,使用ArrayListlist=newArrayList()创建List集合时,底层直接创建了长度是10的Object[]数组elementData;在接下来调用add()方法向集合中添加元素时,如果本次的添加导致底层elementData数组容量不......
  • Lambda表达式和函数式接口的最佳实践
    Java8引入了Lambda表达式和函数式接口,这一改变不仅极大地简化了代码的编写,还提升了代码的可读性和可维护性。Lambda表达式可以被看作一种匿名函数,它能够作为参数传递给方法或存储在变量中。本文将深入探讨Lambda表达式和函数式接口在实际应用中的最佳实践。Lambda表达式的......
  • 你对Collection中Set、List、Map理解?
    @目录一、图二、hashMap1.扩容算法2.ConcurrentHashMap原理3.TreeMap红黑树特性?使用好处?4.LinkedHashMap的特点?数据结构?三、HashMap底层实现原理及面试问题一、图二、hashMap1.扩容算法所以说,当数组长度为2的n次幂的时候,不同的key算得得index相同的几率较小,那么数据在数组上......
  • Controller外部接口调用方式设计,sign签名规则
    Controller外部接口调用方式设计,sign签名规则//请求头accept:*/*connection:Keep-Aliveuser-agent:My-test3Accept-Charset:UTF-8Content-Type:application/x-www-form-urlencoded如果使用x-www-form-urlencoded传参方式,则使用请求头:My-test1&My-test2如果使用json传......
  • Controller接口设计规范
    Controller接口设计规范1.签名接口请求方将请求参数+时间戳+密钥拼接成一个字符串,然后通过md5等hash算法,生成一个前面sign签名中为什么要加时间戳?答:为了安全性考虑,防止同一次请求被反复利用,增加了密钥没破解的可能性,我们必须要对每次请求都设置一个合理的过期时间,比如:15分钟......
  • Android基础的ListView适配器SimpleAdapter的使用方法,附带可修改模板
            本代码使用的Android版本:android-studio-2024.2.1.11-windows目录一、适配器的五个主要参数二、效果图:三、功能实现的代码(模板):    1.Store主页面:2.item_commodity模板界面:四、结语        本文章还有使用自定义适配器来实现该功能......