Java 应该将数组视为对象吗?

2024-04-19

我经常认为允许使用数组作为适当的对象及其自己的方法而不是依赖于 Arrays、Arrays 和 ArrayUtils 等辅助类是一个好主意。

例如:

ints.sort();                 // Arrays.sort(ints);
int[] onemore = ints.add(8); // int[] onemore = ArrayUtils.add(ints, 8);

我确信我不是第一个有这个想法的人,但我很难找到其他人以前写​​过这个想法。谁能帮我提供一些关于这个主题的参考资料?

这个想法是好是坏,为什么?

实施起来有多容易?

其他一些例子可能包括(但不要纠结于它们,它们与问题本身无关):

int[] ints = {5,4,3,2,1};

// Arrays.sort (ints);
ints.sort();

// int pos = Arrays.asList(ints).indexOf (5);
// int pos = ArraysUtils.indexOf (ints, 5);
int pos = ints.indexOf (5);

// Arrays.reverse (ints);
ints.reverse();

Array<Integer> array = ints; // cast to super class.

// int length = Array.getLength (array);
int length = array.getLength();

// Object n = Array.get (array, 3);
Object n = array.get (3);

// Array.set (array, 3, 7);
array.set (3, 7);

Object obj = array;
// if (obj instanceof int[])
//     System.out.println(Array.toString((int[]) obj));
// else if (....)
System.out.println (obj);

数组不是 Java 中的类是有充分理由的——它们很好地映射了人们根据 C 风格语言的经验对数组应如何工作的理解。将数组设置为低级容器而不是对象也有性能方面的原因。因此,有时使用原始数组而不是集合会带来性能优势。

如果你想使用对象,你应该只使用集合(ArrayList 是集合的一个例子)。它可能很笨重,但集合提供了您似乎想要的良好方法访问类型。

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

Java 应该将数组视为对象吗? 的相关文章

  • 与 Eclipse 中的 Java Content Assist 交互

    作为我的插件项目的一部分 我正在考虑与 Eclipse 在 Java 文件上显示的内容辅助列表进行交互 我正在尝试根据一些外部数据对列表进行重新排序 我看过一些有关创建新内容辅助的教程 但没有看到有关更改现有内容辅助的教程 这可能吗 如果是
  • 为什么即使我的哈希码值相同,“==”也会返回 false

    我写了一个像这样的课程 public class HashCodeImpl public int hashCode return 1 public static void main String args TODO Auto generat
  • C# Byte[] 转 BCD 和 BCD 转 INT

    我有一个由 CashRegister Machine 创建的 Hex 文件 我必须读入这个文件 文件使用下面详述的格式 它就像套接字数据包 代码数据 2字节PLU 代码数据 7 字节单价数据 5字节数量数据 5字节数据总量 5字节PLU 名
  • java inputstream 打印控制台内容

    sock new Socket www google com 80 out new BufferedOutputStream sock getOutputStream in new BufferedInputStream sock getI
  • 提供节点名或服务名,或未知 Java

    最近我尝试运行我的 Java 项目 每当我运行它并将其打开到我得到的服务器地址时 Unable to determine host name java net UnknownHostException Caused by java net
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 如何使用 JMagick 转换色彩空间?

    如何使用 JMagick API 转换色彩空间 例如 CMYK gt RGB 和 RGB gt CMYK None
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • Android S8+ 警告消息“不支持当前的显示尺寸设置,可能会出现意外行为”

    我在 Samsung S8 Android 7 中收到此警告消息 APP NAME 不支持当前的显示尺寸设置 可能会 行为出乎意料 它意味着什么以及如何删除它 谢谢 通过添加解决supports screens 机器人 xlargeScre
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 在多个数组中搜索字符串,然后设置 var - jQuery

    我正在寻找基于字符串存在于哪个数组中设置一个变量 例如 var primary red blue yellow var secondary orange purple green 然后检查 purple 并返回它在 secondary 数组
  • Java RMI - 客户端超时

    我正在使用 Java RMI 构建分布式系统 它必须支持服务器丢失 如果我的客户端使用 RMI 连接到服务器 如果该服务器出现故障 例如电缆问题 我的客户端应该会收到异常 以便它可以连接到其他服务器 但是当服务器出现故障时 我的客户端什么也
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • android studio 立即删除我的复制和粘贴导入语句

    我有一个由 android studio 0 8x 设置的项目 空白活动 但是当我粘贴 ctrl v 一些导入语句时 如下所示 import android app Activity import android content res R
  • 判断一个变量是否在数组中? [复制]

    这个问题在这里已经有答案了 我有一个变量 var code de 我有一个数组 var countryList de fr it es 有人可以帮助我 因为我需要检查该变量是否在 CountryList 数组内 我的尝试在这里 if cod
  • CUDA 中的广义霍夫变换 - 如何加快分箱过程?

    正如标题所示 我正在对并行计算机视觉技术进行一些个人研究 使用 CUDA 我尝试实现 GPGPU 版本的霍夫变换 我遇到的唯一问题是在投票过程中 我调用atomicAdd 来防止多个同时写入操作 但我似乎没有获得太多的性能效率 我在网上搜索
  • 拖动我的 MKAnnotationView 后拖动地图不会随之移动 MKAnnotationView

    MKPinAnnotationView 不允许您使用自定义图像作为 图钉 并同时启用拖动 因为一旦开始拖动 图像就会变回默认图钉 因此我使用 MKAnnotationView 而不是 MKPinAnnotationView 虽然使用 MKA
  • 无法将“&Thing”与“Thing”进行比较

    我知道该错误意味着什么 但我无法修复它 我在用着mockers为了测试我的工作 当我尝试验证提供给模拟特征函数的结构参数时 我陷入了困境 简化的代码 cfg test extern crate mockers cfg test extern
  • Google feed api 已弃用,我如何找到网站的 rss feed? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用 Google Feed API 来查找特殊关键字或网站的 rss feed 现在这个 api
  • 如何计算EMGU中两幅图像之间的相关性?

    我有两个图像 假设它们具有相同的大小 我想使用 EMGU 和 C 计算两个图像之间的相关性 我没有找到任何函数可以做到这一点 并自己实现了相关性计算 但我宁愿使用内置函数 有这样的功能吗 Thanks I think 图像 MatchTem
  • Symfony2 隐藏字段上的数据转换器

    我已经搜索过 但没有发现有人遇到这个问题 我已经按照食谱中的规定创建了自己的数据转换器 一切似乎都是正确的 但我收到错误 表单的视图数据应该是 Niche SecurityBundle Entity BusinessUser 类的实例 但它
  • didEnterRegion 以更大的半径调用(iOS)

    我希望更精确地调用 didEnterRegion 但我无法做到这一点 以下是我所做的 我使用了 distanceFilter 和desiredAccuracy 的最佳值 Apple 提供的最精确的 GPS 设置 并设置了目标 CLCircu
  • 使用 cocoapods 更改导入的库

    我正在使用 cocoapods 进行一个项目 突然我发现自己在其中一个库中进行了一些更改 我怎样才能确保这些更改永远不会被覆盖pod update 有没有办法在不更新 github 项目的情况下在 pod 中引入更改 更新 分叉项目 我尝试
  • Solr 索引与存储

    我对太阳能场的索引和存储属性的行为有点困惑 例如 如果我在 Schema xml 中有以下内容
  • 初始化NSObject时预留了多少内存?

    当我在 Objective c 中使用这个语句时 NSObject object NSObject alloc init 为对象保留多少内存 您可以使用以下代码测试对象的大小 import
  • python pandas 对列的操作

    您好 我想知道使用 pandas 对 python 中的列进行操作的最佳方法 我有一个经典数据库 我已将其作为数据框加载 并且我经常必须对每一行进行操作 如果标记为 A 的列中的值大于x 则用列 C 减去列 替换该值 D 现在我做类似的事情
  • 当应用程序 css 和 javascript 标签在 Rails 上初始化时,fullcalendar 标题工具栏按钮不显示

    我想在我的 Rails 项目上运行 fullcalendar 我正在按照以下步骤操作https github com bokmann fullcalendar rails https github com bokmann fullcalen
  • 如何在Scala3中编译并在运行时执行scala代码?

    我想使用 Scala3 编译并执行在运行时以字符串形式给出的 Scala 代码 例如在 Scala 2 中我会使用 Reflection import scala reflect runtime universe as ru import
  • 如何为浏览器生成CMY三角形? (CSS、SVG、画布?)

    我正在尝试为一个项目生成一个 CMY 三角形 我希望能够使用 css svg 或 canvas 直接在网络上渲染它 根据 Amelia 的评论 我尝试构建一个 CSS SASS 类来用线性渐变渲染三角形 triangle include b
  • 如何在 Android 应用程序中保存数据

    我最近编写了一个 Android 应用程序 这只是一个简单的应用程序 可让您通过几个简单的计数间隔来记录篮球比赛的得分 我收到添加保存功能的要求 这样您就可以保存您的分数 然后将其加载回来 目前 当您停止应用程序时 您的数据就会丢失 所以我
  • 反应本机打字稿“字符串”不可分配给“从不”类型的参数。使用中导航

    我不断收到错误消息 提示 字符串 不能分配给反应本机打字稿中 从不 类型的参数 我不知道为什么 有人可以帮我修复这个错误吗 先感谢您 代码片段 const loadReport id string gt setPostId id navig
  • 如何从联合结果中进行选择?

    我有一个像这样的 MySQL 脚本 SELECT FROM WHERE UNION ALL SELECT FROM WHERE 现在如何从并集结果中再次选择 这不起作用 SELECT FROM SELECT FROM WHERE UNION
  • Java 应该将数组视为对象吗?

    我经常认为允许使用数组作为适当的对象及其自己的方法而不是依赖于 Arrays Arrays 和 ArrayUtils 等辅助类是一个好主意 例如 ints sort Arrays sort ints int onemore ints add