我需要能够有一个n维场,其中n是基于构造函数的输入.但我甚至不确定是否可能.是吗?

解决方法

快速解决方案:您可以使用与您需要的深度一致的ArrayList的非通用ArrayList来近似它.然而,这可能会很尴尬地使用相当快.

需要更多工作的替代方案可能是使用底层平面数组表示来实现自己的类型,您可以在其中内部计算索引,并使用vararg参数提供访问器方法.我不知道它是否完全可行,但可能值得一试

粗体例(未测试,无溢出检查,错误处理等,但希望传达基本思想):

class NDimensionalArray {
  private Object[] array; // internal representation of the N-dimensional array
  private int[] dimensions; // dimensions of the array
  private int[] multipliers; // used to calculate the index in the internal array

  NDimensionalArray(int... dimensions) {
    int arraySize = 1;

    multipliers = new int[dimensions.length];
    for (int idx = dimensions.length - 1; idx >= 0; idx--) {
      multipliers[idx] = arraySize;
      arraySize *= dimensions[idx];
    }
    array = new Object[arraySize];
    this.dimensions = dimensions;
  }
  ...
  public Object get(int... indices) {
    assert indices.length == dimensions.length;
    int internalIndex = 0;

    for (int idx = 0; idx < indices.length; idx++) {
      internalIndex += indices[idx] * multipliers[idx];
    }
    return array[internalIndex];
  }
  ...
}

Java N维数组的更多相关文章

  1. ios – 在Parse Analytics中记录自定义事件需要24小时

    我是Parse的新手,我刚尝试添加基本事件,如下所示:从仪表板我可以看到记录的API请求事件,但我似乎无法访问特定的事件或数据.是否需要24小时注册或我错误地使用仪表板?

  2. 如何在Java中获得两个n维数组的总和?

    它也应该可以使用ArrayList或任何其他类,但我主要感兴趣的是如何使用数组…(但如果有人知道它请发布!

  3. javascript – 使用Trianglify设置di​​v背景

    我在使用Trianglify插件时遇到了一些问题.我想用它来设置div的背景.我怎样才能做到这一点?我找不到合适的例子.这是我的示例代码:另外,我可以使用来自Trianglify的不同背景的div吗?

  4. javascript – 使用React获取图像的尺寸

    这是一个演示视频:cl.ly/250M2g3X1k21是否有更好,更简洁的方法使用React正确检索尺寸?

  5. cocos js控件ccui.Text 和ccui.RichText获得实际大小的方法

    如何才能让_dimensions.height===0呢?

  6. 【知乎解答】cocos2d-x中Contestsize和Dimensions有什么不同

    =_labelWidth){_labelWidth=width;_labelHeight=height;_labelDimensions.width=width;_labelDimensions.height=height;_maxlinewidth=width;_contentDirty=true;}}constSize&getDimensions()const{return_labelDimensions;}上述两个接口就是Dimensions的使用,可以看出使用Dimensions是对Label自己

  7. Java N维数组

    我需要能够有一个n维场,其中n是基于构造函数的输入.但我甚至不确定是否可能.是吗?解决方法快速解决方案:您可以使用与您需要的深度一致的ArrayList的非通用ArrayList来近似它.然而,这可能会很尴尬地使用相当快.需要更多工作的替代方案可能是使用底层平面数组表示来实现自己的类型,您可以在其中内部计算索引,并使用vararg参数提供访问器方法.我不知道它是否完全可行,但可能值得一试粗体例:

  8. javascript – 附加文本未在d3 v4中显示

    ),除了每个轴顶部的标签没有显示,即使附加了文本标签并且文本写在tag.我相信负责这个的代码就是这个部分,但我无法找到发生这种情况的原因:为什么文本标签不显示?

  9. python – Mandelbrot设置显示不正确

    很抱歉代码转储,只是不确定哪个部分可能会导致它看起来像那样.解决方法迷人的bug–它看起来像一个被压扁的bug总结以上是DEVMAX为你收集整理的python–Mandelbrot设置显示不正确全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部