OpenHarmony语言基础类库【@ohos.util.LinkedList (线性容器LinkedList)】

 LinkedList底层通过双向链表实现,双向链表的每个节点都包含对前一个元素和后一个元素的引用。当需要查询元素时,可以从头遍历,也可以从尾部遍历,插入、删除效率高,查询效率低。LinkedList允许元素为null。

LinkedList和[List]相比,LinkedList是双向链表,可以快速地在头尾进行增删,而List是单向链表,无法双向操作。

LinkedList和[ArrayList]相比,插入数据效率LinkedList优于ArrayList,而查询效率ArrayList优于LinkedList。

推荐使用场景:  当需要频繁的插入删除时,推荐使用LinkedList高效操作。

文档中存在泛型的使用,涉及以下泛型标记符:

  • T: Type,类

icon-note.gif

 说明:

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import LinkedList from '@ohos.util.LinkedList';  

LinkedList

鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

属性

系统能力:  SystemCapability.Utils.Lang

名称类型可读可写说明
lengthnumberLinkedList的元素个数。

constructor

constructor()

LinkedList的构造函数。

系统能力:  SystemCapability.Utils.Lang

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200012The LinkedList's constructor cannot be directly invoked.

示例:

let linkedList = new LinkedList();

add

add(element: T): boolean

在LinkedList尾部插入元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT待插入的元素。

返回值:

类型说明
boolean插入成功返回true,否则返回false。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The add method cannot be bound.

示例:

let linkedList = new LinkedList();
let result = linkedList.add("a");
let result1 = linkedList.add(1);
let b = [1, 2, 3];
let result2 = linkedList.add(b);
let c = {name : "Dylon", age : "13"};
let result3 = linkedList.add(c);
let result4 = linkedList.add(false);

addFirst

addFirst(element: T): void

在LinkedList头部插入元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT待插入的元素。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The addFirst method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.addFirst("a");
linkedList.addFirst(1);
let b = [1, 2, 3];
linkedList.addFirst(b);
let c = {name : "Dylon", age : "13"};
linkedList.addFirst(c);
linkedList.addFirst(false);

insert

insert(index: number, element: T): void

在长度范围内任意插入指定元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
indexnumber插入位置索引。
elementT插入元素。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The insert method cannot be bound.
10200001The value of index is out of range.

示例:

let linkedList = new LinkedList();
linkedList.insert(0, "A");
linkedList.insert(1, 0);
linkedList.insert(2, true);

has

has(element: T): boolean

判断此LinkedList中是否含有该指定元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT指定元素。

返回值:

类型说明
boolean包含指定元素返回true,否则返回false。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The has method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add("squirrel");
let result = linkedList.has("squirrel");

get

get(index: number): T

根据下标获取LinkedList中的元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
indexnumber指定的下标值。

返回值:

类型说明
T根据下标查找到的元素,元素不存在返回undefined。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The get method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(2);
linkedList.add(1);
linkedList.add(2);
linkedList.add(4);
let result = linkedList.get(2);

getLastIndexOf

getLastIndexOf(element: T): number

返回指定元素最后一次出现时的下标值,查找失败返回-1。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT指定元素。

返回值:

类型说明
number返回指定元素最后一次出现时的下标值,查找失败返回-1。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The getLastIndexOf method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(2);
linkedList.add(1);
linkedList.add(2);
linkedList.add(4);
let result = linkedList.getLastIndexOf(2);

getIndexOf

getIndexOf(element: T): number

返回指定元素第一次出现时的下标值,查找失败返回-1。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT指定元素。

返回值:

类型说明
number返回指定元素第一次出现时的下标值,查找失败返回-1。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The getIndexOf method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(2);
linkedList.add(1);
linkedList.add(2);
linkedList.add(4);
let result = linkedList.getIndexOf(2);

removeByIndex

removeByIndex(index: number): T

根据元素的下标值查找元素,并将其删除。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
indexnumber指定元素的下标值。

返回值:

类型说明
T返回删除的元素,如果为空返回undefined。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The removeByIndex method cannot be bound.
10200001The value of index is out of range.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(2);
linkedList.add(4);
let result = linkedList.removeByIndex(2);

removeFirst

removeFirst(): T

删除并返回LinkedList的第一个元素。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
T返回删除的元素。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The removeFirst method cannot be bound.
10200010Container is empty.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(2);
linkedList.add(4);
let result = linkedList.removeFirst();

removeLast

removeLast(): T

删除并返回LinkedList的最后一个元素。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
T返回删除的元素。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The removeLast method cannot be bound.
10200010Container is empty.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(2);
linkedList.add(4);
let result = linkedList.removeLast();

remove

remove(element: T): boolean

删除查找到的第一个指定的元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT指定元素。

返回值:

类型说明
boolean删除成功返回true,否则返回false。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The remove method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.remove(2);

removeFirstFound

removeFirstFound(element: T): boolean

删除第一次出现的指定元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT指定元素。

返回值:

类型说明
boolean删除成功返回true,删除失败或不存在该元素时返回false。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The removeFirstFound method cannot be bound.
10200010Container is empty.
10200017The element does not exist in this container.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.removeFirstFound(4);

removeLastFound

removeLastFound(element: T): boolean

删除最后一次出现的指定元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
elementT指定元素。

返回值:

类型说明
boolean删删除成功返回true,删除失败或不存在该元素时返回false。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The removeLastFound method cannot be bound.
10200010Container is empty.
10200017The element does not exist in this container.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.removeLastFound(4);

clone

clone(): LinkedList<T>

克隆一个与LinkedList相同的实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。

系统能力:  SystemCapability.Utils.Lang

返回值:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.clone();
类型说明
LinkedList<T>返回LinkedList对象实例。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The clone method cannot be bound.

示例:

 

forEach

forEach(callbackFn: (value: T, index?: number, LinkedList?: LinkedList<T>) => void, thisArg?: Object): void

通过回调函数来遍历LinkedList实例对象上的元素以及元素对应的下标。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
callbackFnfunction回调函数。
thisArgObjectcallbackfn被调用时用作this值。

callbackfn的参数说明:

参数名类型必填说明
valueT当前遍历到的元素。
indexnumber当前遍历到的下标值。
LinkedListLinkedList<T>当前调用forEach方法的实例对象。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The forEach method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
linkedList.forEach((value, index) => {
    console.log("value:" + value, "index:" + index);
});

clear

clear(): void

清除LinkedList中的所有元素,并把length置为0。

系统能力:  SystemCapability.Utils.Lang

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The clear method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
linkedList.clear();

set

set(index: number, element: T): T

将此LinkedList中指定位置的元素替换为指定元素。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
indexnumber查找的下标值。
elementT用来替换的元素。

返回值:

类型说明
T返回替换后的元素,如果为空返回undefined。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The set method cannot be bound.
10200001The value of index is out of range.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.set(2, "b");

convertToArray

convertToArray(): Array<T>

把当前LinkedList实例转换成数组,并返回转换后的数组。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
Array<T>返回转换后的数组。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The convertToArray method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.convertToArray();

getFirst

getFirst(): T

获取LinkedList实例中的第一个元素。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
T返回对应元素,如果元素为空返回undefined。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The getFirst method cannot be bound.

示例:

​
let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.getFirst();

​

getLast

getLast(): T

获取LinkedList实例中的最后一个元素。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
T返回对应元素,如果为元素空返回undefined。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The getLast method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
let result = linkedList.getLast();

[Symbol.iterator]

搜狗高速浏览器截图20240326151450.png

[Symbol.iterator](): IterableIterator<T>

返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
IterableIterator<T>返回一个迭代器。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码。

错误码ID错误信息
10200011The Symbol.iterator method cannot be bound.

示例:

let linkedList = new LinkedList();
linkedList.add(2);
linkedList.add(4);
linkedList.add(5);
linkedList.add(4);

// 使用方法一:
for (let item of linkedList) { 
  console.log("value:" + item); 
} 

// 使用方法二:
let iter = linkedList[Symbol.iterator]();
let temp = iter.next().value;
while(temp != undefined) {
  console.log("value:" + temp);
  temp = iter.next().value;
}

鸿蒙语言有TS、ArkTS等语法,那么除了这些基础知识之外,其核心技术点有那些呢?下面就用一张整理出的鸿蒙学习路线图表示:

从上面的OpenHarmony技术梳理来看,鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少,下面推荐一些:完整内容可在头像页保存,或这qr23.cn/AKFP8k甲助力

内容包含:《鸿蒙NEXT星河版开发学习文档》

  • ArkTS
  • 声明式ArkUI
  • 多媒体
  • 通信问题
  • 系统移植
  • 系统裁剪
  • FW层的原理
  • 各种开发调试工具
  • 智能设备开发
  • 分布式开发等等。

这些就是对往后开发者的分享,希望大家多多点赞关注喔!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/577585.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库和表创建练习

一丶要求 1.创建一个数据库db_classes 2 创建一行表db_hero 3. 将四大名著中的常见人物插入这个英雄表 二丶创建db_classes一个数据库, 使用数据库默认的字符集 create database db_classes; 三丶创建一行表db_hero 1.先切换到我们创建的db_classes;数据库中 use db_class…

RabbitMQ中的交换机类型

交换机类型 可以看到&#xff0c;在订阅模型中&#xff0c;多了一个exchange角色&#xff0c;而且过程略有变化&#xff1a; Publisher&#xff1a;生产者&#xff0c;不再发送消息到队列中&#xff0c;而是发给交换机 Exchange&#xff1a;交换机&#xff0c;一方面&#xff…

03 后端入参校验:自定义注解实现

03 后端入参校验&#xff1a;自定义注解实现 一、前言二、实现1、新建Spring Boot项目2、引入依赖3、新建注解类4、新建校验器5、全局异常处理器6、编写Controller7、新建实体类8、启动并测试 一、前言 在 Java 后端开发中&#xff0c;为了实现入参校验&#xff0c;常常会使用…

【SpringCloud】CircuitBreaker断路器之Resilience4J快速入门

【SpringCloud】CircuitBreaker断路器之Resilience4J快速入门 文章目录 【SpringCloud】CircuitBreaker断路器之Resilience4J快速入门1. 概述2. 服务熔断服务降级(CircuitBreaker)2.1 案例说明2.1.1 基于计数的滑动窗口2.1.2 测试2.2.1 基于时间的滑动窗口2.2.2 测试 3. 隔离(B…

多行Textview 计算切分后的长度,并回退长度

实现类似的效果&#xff0c;一个多行的 textview&#xff0c; 如果赋值一个超长的字符&#xff0c;尾部长度回退部分&#xff0c;并添加 ... 最后添加一个详情按钮。 如果不超长则不显示详情 效果如图&#xff1a; 获取截断之后的字符长度 fun getLimitedCharacterCount(textV…

更新!!!Unity移动端游戏性能优化简谱

UWA官方出品&#xff0c;结合多年优化经验撰写了《Unity移动端游戏性能优化简谱》&#xff0c;文章从Unity移动端游戏优化的一些基础讨论出发&#xff0c;例举和分析了近几年基于Unity开发的移动端游戏项目中最为常见的部分性能问题&#xff0c;并展示了如何使用UWA的性能检测工…

Java web应用性能分析之【6种OOM监控和分析】

Java web应用性能分析之【Linux服务器性能监控分析概叙】-CSDN博客 Java web应用性能分析概叙-CSDN博客 Java web应用性能分析之【基准测试】-CSDN博客 Java web应用性能分析之【sysbench基准测试】-CSDN博客 Java web应用性能分析之【CPU飙升分析概述】-CSDN博客 Java we…

GPT学术优化推荐(gpt_academic )

GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合GPT等等 ChatGPT/GLM提供图形交互界面&#xff0c;特别优化论文阅读/润色/写作体验&#xff0c;模块化设计&#xff0c;支持自定义快捷按钮&…

014_用vim复制粘贴_保持双手正位

[oeasy]python0014_用vim复制粘贴_保持双手正位 继续运行 &#x1f94a; 回忆上次内容 程序员 还是 很可爱的 要关心 身边的程序员 啊 毕竟是新时代的 典型新职业 文明 主流职业 血型 渔猎采集文明 猎人 O 游牧文明 牧民 B 农业文明 农民 A 工业文明 工人 商…

Linux——DNS的配置和使用

一、DNS 域名服务器&#xff0c;实现IP和域名的转换 DNS 协议运行在 UDP 协议之上&#xff0c;使用端口号 53 2.结构 DNS 的命名空间的结构如下&#xff1a; 1. 根域名&#xff08; Root Domain &#xff09;&#xff1a; 根域名位于 DNS 命名空间的顶部&#xff0c;它表示…

【继承和多态】

闭上眼睛&#xff0c;什么都不听.............................................................................................................. 文章目录 前言 一、【继承】 1.1【继承的概念】 1.2【 继承的定义】 1.2.1【定义格式】 1.2.2【继承关系和访问限定符】 1.2…

浏览器的同源策略与解决跨域

同源策略&#xff08;协议、域名、端口&#xff09; 同源策略&#xff08;Same-Origin Policy&#xff09;是一个在浏览器安全模型中被实施的重要安全机制。它是基于域名、协议和端口号的限制&#xff0c;用于防止不同源的网页间的恶意行为和信息泄露。 根据同源策略&#xf…

探秘Java线程:从概念到实践

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

Unity Timeline学习笔记(4) - 自定义轨道OnCreateClip和CreateTrackMixer用法上的区分

前面我们第二篇文章Unity Timeline学习笔记(2) - PlayableTrack是一个初步的PlayableTrack使用方法&#xff0c;有时候可能会个性化定制专属轨道。 OnCreateClip的例子 下面我们做一个例子&#xff1a; 首先是轨道 //FeatureTrack.cs using System.ComponentModel; using U…

以太网口硬件知识分享

一、了解网口通信基本原理 实现网络通信实质上是PHY与MAC及RJ45接口实现信号传输。MAC 就是以太网控制器&#xff0c;MAC属于数据链路层&#xff0c;主要负责把数据封装成帧&#xff0c;对帧进行界定实现帧同步。对MAC地址和源MAC地址及逆行相应的处理并对错误帧进行处理。PHY…

JavaScript-3(内置对象+数组对象+字符串对象)

目录 1.预解析 2.对象 什么是对象 创建对象的三种方法 利用字面量创建方法 利用new Object创建对象 构造函数创建对象 new关键字 遍历对象 3.内置对象 Math对象 Math概述 Math随机数 Date日期对象 格式化日期 Date总的时间毫秒 4.数组对象 创建数组的两种方式…

进销存单机版和excel进销存那个好用

进销存单机版和EXCEL进销存哪个好用&#xff1f;单机版是安装在单台电脑上使用的&#xff0c;它不能像网络版一样可以多台电脑同时共享数据&#xff0c;所以进销存单机版有一个优势就是不需要连接网络也可以使用。 进销存单机版 进销存软件单机版是经过开发人员设计好的一种信…

网页提示语闪太快的定位问题(selenium)

selenium UI自动化时&#xff0c;提示语闪太快&#xff0c;导致无法获取元素的问题 解决办法 步骤一&#xff1a; F12---》控制台输入debugger 步骤二&#xff1a;对于需要定位的部分&#xff0c;在控制台的debugger处回车&#xff0c;可以定住页面 步骤三&#xff1a;正常定…

生成式AI原理技术详解(一)——神经网络与深度学习

本文主要介绍了生成式AI的最新发展&#xff0c;提到了GPT-5和AI软件工程师在行业中的影响&#xff0c;指出AI技术进步对国家竞争和个人职业发展的潜在影响。 未来已来 最近有两则新闻&#xff1a; sam altman自曝GPT-5细节&#xff0c;公开宣称GPT-5提升将非常大&#xff0c;任…

62、回溯-N皇后

思路&#xff1a; N皇后问题要求在一个nn的棋盘上放置n个皇后&#xff0c;使得它们不能相互攻击。皇后可以攻击同一行、同一列&#xff0c;以及两个对角线方向上的其他皇后。解决这个问题意味着找到所有可能的棋盘配置&#xff0c;每个配置都符合上述条件。 1、初始化数据结构…