Java列表:从标识符获取下一个或上一个元素

2023-12-21

我想要按标识符导航到列表.

1-我管理/创建一个列表。

2-我创建函数来从列表中获取标识符元素的下一项

你能帮我修复这个代码吗?

准备清单

List<String> myList = new ArrayList<String>();
myList.add("1");
myList.add("2");
myList.add("3");
myList.add("4");
myList.add("5");


public String function getNext(String uid) {

    if (myList.indexOf(uid).hasNext()) {
        return myList.indexOf(uid).nextElement();
    }
    return "";
}

public String function getPrevious(String uid) {
    return myList.indexOf(uid).hasPrevious() ? myList.indexOf(uid).previousElement() : "";
}

您可以使用索引来查找字符串,这更快更简单,但是可以实现您拥有的功能。

public String getNext(String uid) {
    int idx = myList.indexOf(uid);
    if (idx < 0 || idx+1 == myList.size()) return "";
    return myList.get(idx + 1);
}

public String getPrevious(String uid) {
    int idx = myList.indexOf(uid);
    if (idx <= 0) return "";
    return myList.get(idx - 1);
}

Using a List.get(i) is O(1)这使得保留索引成为最快的选择。List.indexOf(String) is O(n)。使用 NavigatbleSet 可能看起来很有吸引力O(log n),但是创建对象的成本是如此之高,以至于集合必须相当大才能看到好处。 (在这种情况下,您将使用第一个选项)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java列表:从标识符获取下一个或上一个元素 的相关文章

随机推荐

  • ProgramData 和 AppData 有什么区别?

    我需要为我的程序存储一些特定于用户的配置数据 Application Data AppData 在用户目录中 和 ProgramData 在系统驱动器的根目录中 似乎都是放置它的合理位置 程序数据和应用程序数据有什么区别 我应该使用哪一个
  • 查找具有重复值的字典键

    some dict firstname Albert nickname Albert surname Likins username Angel 我想返回我的字典的键 其中它们的值存在不止一次 有人可以告诉我如何实现这一点吗 a list
  • select()系统调用中nfds=0时发生了什么

    我正在 Linux 上调试一个应用程序 它有几个线程定期调用select系统调用 strace shows select 0 NULL NULL NULL 1 342414 So nfds 0 我认为 nfds 是任何集合中出现的最高文件描
  • Chrome 自动完成多个电子邮件字段

    我的表单上有 3 个输入框 Google Chrome 提供自动完成功能 因此 如果您单击其中任何一个或开始输入内容 您将看到 Chrome 选项列表 但当您在这些自动完成选项之间上下移动时 3 个输入框将填充值 而不是当前的文本框 htt
  • Android:本地化标准文本,例如确定、取消和 GPS 未激活 - 例如?

    我希望本地化我的应用程序 当然 我需要本地化特定于我的应用程序的文本 但是标准文本是否存在一些标准资源 例如 确定 和 取消 GPS 未激活等 或者我必须完全本地化所有内容吗 android 是否附带了一些全局文本资源 我如何访问它 提前致
  • C 是否有与 C++ 中的 std::less 等效的东西?

    我最近正在回答一个关于 do 的未定义行为的问题p lt q在C中当p and q是指向不同对象 数组的指针 这让我想到 C 具有相同的 未定义的 行为 lt 在这种情况下 还提供了标准库模板std less保证返回与 lt 当指针可以比较
  • $PATH 中的波形符字符 ('~')? (例如:PATH='~/bin':/usr/bin:/bin)

    根据我的测试 bash很高兴 in PATH but usr bin which不是 是否有关于此的任何标准 如 POSIX Example STEP 100 echo BASH VERSION 4 4 12 1 release STEP
  • 如何在Windows中创建虚拟Com1端口?

    我正在开发一个在袖珍电脑上运行的移动应用程序 我们有一个移动打印机和刷卡器 使用 com1 发送和获取信息 我正在使用设备模拟器 并且想在没有打印机的情况下进行测试 如何创建虚拟 com1 端口以进行读取 我尝试了 com0com 但设备模
  • Go 内置函数是否使用泛型?

    看看 Go 的内置函数 我才意识到它们不使用接口 而是使用神奇的 类型 https golang org src builtin builtin go https golang org src builtin builtin go 那么 在
  • 在 Swift 中创建绑定到特定范围的类型

    假设我有一个函数需要Int 但不仅仅是任何Int 它可能是 仅限自然数 Ints2 至 200 etc 假设有效值的数量太大而无法使用Enum明确声明所有这些都是可行的方法 有没有办法在 Swift 中声明一个指定闭范围的类型 我尝试玩弄R
  • 上传用户 Firebase 的个人资料图片

    我正在尝试将图像添加到 Android 的实时数据库 firebase 中的用户信息中 我已将图像上传到 firebase 存储中 但如何才能将该图像添加到该用户的数据库中 代码如下 inside onCreate method img s
  • 插入 5000 多个 Android 联系人的最有效方法

    我意识到这在很多地方都有所涉及 包括here https stackoverflow com questions 5596354 insertion of thousands of contact entries using applyba
  • 递归SQL语句(PostgreSQL 9.1.4)

    PostgreSQL 9 1 业务情况 每个月都会有一批新的帐户分配给特定流程 每批次可按月份 账户数 账户总余额进行描述 该流程的目标是从客户那里收回部分余额 然后每月单独跟踪每个批次 自批次转移到流程后每个月回收的金额 Goal 我的目
  • 在 LibGDX 中合并模型构建器中的模型

    我是 LibGDX 3D 设施的新手 我想知道如何合并使用创建的两个圆柱体模型构建器 createCylinder http libgdx badlogicgames com nightlies docs api com badlogic
  • 从非活动中使用 startActivityForResult

    我有 MainActivity 它是一个 Activity 和其他类 这是一个简单的 java 类 我们将其称为 SimpleClass 现在我想从该类运行命令startActivityForResult 我虽然我可以仅使用 MainAct
  • 从 FTP 文件夹下载所有文件时出现“权限被拒绝”错误

    到目前为止 我已经从 FTP 站点获取了我需要的文件的名称 请参阅下面的代码 from ftplib import FTP import os sys os path def handleDownload block file write
  • firebase-tools“错误:证书已过期”

    今天早上 我尝试将 React 项目部署到 Firebase 托管 但收到此错误 Error Server Error certificate has expired 然后我尝试执行firebase list命令查看我的项目列表 但我再次收
  • 在 IIS 上尝试 WCF 数据服务时收到“401 - 未经授权”

    我开发了一个WCF数据服务 它运行良好 我可以通过它完成我想要的每一个操作 我开发了一个小型 C 客户端 用于测试所有功能 添加 删除 修改 检索数据 在我的 Visual Studio 服务器上一切正常 但一旦我在 IIS 服务器上 我可
  • Android MediaPlayer:准备好的视频需要 250 毫秒才能开始播放

    当我使用prepareAsync 播放视频 然后在视频准备好后调用start 时 从start 调用到视频实际开始播放大约需要250毫秒 事情就是这样吗 还是这里发生了一些有趣的事情 请注意 视频位于 raw 目录中 在我的活动的 OnCr
  • Java列表:从标识符获取下一个或上一个元素

    我想要按标识符导航到列表 1 我管理 创建一个列表 2 我创建函数来从列表中获取标识符元素的下一项 你能帮我修复这个代码吗 准备清单 List