- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想分配原始数据类型对象的数组列表,如 int、char 等(不是数组,因为它将来可能不会线性增长)但需要存储在 RAM(jvm 管理的堆)中的连续内存位置。但是自从我为 ex 的原始数据类型声明 ArrayList 以来。 ArrayList为int,jvm内部映射为ArrayList
现在的问题是 ArrayList 持有对存储在 jvm 管理的内存空间中不同位置的对象的连续引用。但我最初的想法是连续存储实际数据对象而不仅仅是引用!但我不知道如何实现它?
我能想到的一个解决方案是分配大尺寸字节数组,从而创建一个连续的内存缓冲区存储!如果在 2000 个预分配字节中存储了 1000 个 int 对象,开发人员需要管理如何在 101 索引位置获取一些存储在这个手动创建的缓冲区中的 int 数据(假设我们建模为 2 个字节/int)!
复杂数据类型也需要相同的功能。尽管在处理复杂对象的连续内存分配时可能很困难,因为需要计算结构大小并预分配(structureSize * 预期元素数)的字节缓冲区
对于连续分配对象(原始/复杂>),我想不出任何其他有效的方法或解决方案。任何人都可以帮助我吗?
最佳答案
没有单一的解决方案可以满足您的要求。
如果你想要一个原始类型的类似数组的结构,那么你需要使用那个原始类型的数组或者一些包装那个原始类型的数组的类1。如果您尝试实现自定义类,它不能是通用的(在原始类型上),因为原始类型不能用作通用类型参数。因此,它不能是 ArrayList
或派生自 Collection
的任何其他类型。
如果您想要引用类型的类数组结构,那么您可以使用数组或 ArrayList
。
简而言之,如果您不愿意使用包装器类型(Integer
等):
假设地,您可以创建一个类似数组的类型,它实现了任何基本类型的数组,具体取决于运行时参数。只需定义大量方法/重载来获取/设置不同的原始类型。但是,这不是编译时类型安全的,而且 API 会丑陋 ...至少可以这么说。
您使用 ByteBuffer
的想法与上面的基本相同……或者更糟,如果您预计应用程序代码会在字节和名义上的“数组”基类型。 (你最好从 byte[]
而不是 ByteBuffer
开始。)
1 - 例如,Trove Collection 类之一。
关于Java ArrayList<primitive datatype> 连续内存分配仅用于引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18348667/
这个问题已经有答案了: EmailAddress or DataType.Email attribute (3 个回答) 已关闭 3 年前。 我使用了像[EmailAddress]这样的数据属性和[D
我收到此错误: "CS0104: 'DataType' is an ambiguous reference between 'System.ComponentModel.DataAnnotations
1)我目前正在尝试理解以下代码,但我无法理解 void(*func)(void) 的含义,我可以理解我正在尝试保存名为“function”的函数的地址来自 list0513,在 void 指针函数处,
我们可以以某种方式应用这种格式吗? [Display(Name = "Date of Birthday")] [DataType(DataType.Date)] public DateTime DOB
我已按照 ORMLite 文档的规定将我的类型声明为 SERIALIZABLE,但我仍然得到: ORMLite can't store unknown class interface java.io.
嗨。 这就是我想要做的: str2 = "91"; str1 = "19"; var testQuery = from c1 in str1
我在 MVC 5 中使用 ASP.NET 身份。对于密码验证,我在 AccountViewModels.cs 中有以下代码: [Required] [DataType(DataType.Passwor
我试图了解使用之间的主要区别是什么[DataType(DataType.EmailAddress)] & [EmailAddress] . 在模型类中:- public class MYViewMod
使用 DataType Attribute 有什么区别?并传入值 DataType.Phone和 Phone Attribute它继承自 DataType 并自动设置 DataType.Phone?
我的 ViewModel 中有以下字段: [DataType(DataType.Date)] [Display(Name = "Preferred date)")] publi
如果没记错的话,是[DataType(DataType.Currency)]的DataAnnotation的对应部分在 Fluent api 中是 modelBuilder.Entity.Proper
给定一个 pandas.DataFrame带有包含混合数据类型的列,例如 df = pd.DataFrame({'mixed': [pd.Timestamp('2020-10-04'), 999, '
我在电子邮件字段上使用此代码: [Required] [DataType(DataType.EmailAddress)] [Display(Name = "Email addr
我是 NodeJs 开发的新手 我正在使用带有 mysql 和 Sequelize 的 NodeJs 来创建具有这些属性的 Batch 模型。 const Batch = sequelize.defi
我想动态生成我的数据框架构我有以下内容 错误: assert isinstance(dataType, DataType), "dataType should be DataType" Asse
我是 Golang 的新手。抱歉,我仍然对以下两者之间的区别感到困惑: type 和 type = 这是一个例子: package main import "fmt" func main()
当电子邮件地址以数字开头时,DataType DataAnnotation 中 DataType.Email 的内部验证似乎失败了。当具有 1234Something@gmail.com 样式电子邮件
有需求从CSV文件中提取数据,然后将其转换为XML,最终加载到目标中。 CSV文件中的数据为 Number,Email,Email Communication,Member Type,VIN 8532
我正在使用 [DataType(DataType.Date)]关于我们模型中的属性。 如何让 Razor 添加 css 类 datepicker到所有属于 DataType.Date 的文本框特性?
我的表 CalTime 有一个时间数据类型的列 Timespent。它以 HH:MM:SS 格式存储值。请建议如何求和该列的值。 Timespent _______ 00:07:
我是一名优秀的程序员,十分优秀!