草庐IT

long-integer

全部标签

java - Java HashSet<Long> 应该占用多少内存

我想使用HashSet用于在内存中存储大量唯一数字。我计算了大约要消耗的内存(64位指针大小):Long将占用16个字节的空间。所以最初我将条目数乘以16以获得内存。但实际上,每个条目的内存远远超过16个字节。之后我研究了HashSet执行。简而言之,在底层实现中,它实际上为hashset的每个条目存储了一个额外的虚拟对象(12字节)。以及指向下一个条目的指针(8字节)。因此,每个条目额外让步12+8个字节。因此每个条目的总内存:16+12+8=36字节。但是当我运行代码并检查内存时,它仍然远远超过每个条目36个字节。我的问题(简而言之):HashSet需要多少内存?采取(例如,在64

java - 为什么 Java 整数字面量的默认类型是 int 而不是 long?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我很困惑为什么Java整数文字默认为int而不是long。这似乎引起了不必要的困惑。首先,它要求程序员在为超过最大int大小的long赋值时采用特殊语法(将“L”附加到文字中)(2147483647).longx=2147483647;//Compileslongy=2147483648;//Doesnotcompilelongz=2147483648L;

Java 8 lambda 表达式 : Mapping a Stream to type Integer and then calling sum() won't compile

我在玩Java8lambda表达式。作为一个例子,我然后尝试总结列表中包含的年龄:importjava.util.Arrays;importjava.util.List;publicclassPerson{publicstaticvoidmain(String[]args){Listpersons=Arrays.asList(newPerson("FooBar",12),newPerson("BarFoo",16));IntegersumOfAges=persons.stream().map(Person::getAge).sum();System.out.println("summe

java - 无法将 java.lang.Integer 字段设置为 java.lang.Integer

用户声明:@EntitypublicclassUser{@Id@GeneratedValueprivateIntegerid;....模式声明:@EntitypublicclassPattern{@Id@GeneratedValueIntegerid;...用户模式声明:publicclassUserPattern{@Id@GeneratedValueIntegerid;@ManyToOne@JoinColumn(name="user_id")Useruser;@ManyToOne@JoinColumn(name="pattern_id")Patternpattern;...请求数据库

java - 无需迭代即可将 List<Integer> 转换为 int[] ( array ) 的有效方法

publicstaticint[]convertListToArray(ListlistResult){int[]result=newint[listResult.size()];inti=0;for(intnum:listResult){result[i++]=num;}returnresult;}是否有一种无需显式迭代List即可将List转换为数组的有效方法?也许可以使用如下方法:Arrays.copyOf(int[]origin,intnewLength);System.arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,in

使用 longs 的 HashSet 的 Java 代码不起作用?

这个简单的Java代码将2添加到一组long中,然后打印2是否是该集合的成员:importjava.util.*;classA{publicstaticvoidmain(String[]args){HashSets=newHashSet();longx=2;s.add(x);System.out.println(s.contains(2));}}它应该打印true因为2在集合中,但是它打印false。为什么?$javacA.java&&javaAfalse 最佳答案 你的集合包含Long的实例,你正在寻找一个Integer(当一个>

java - .NET 相当于 Java 的 Integer.bitCount?

有没有类似Java的Integer.bitCount(int)的方法或Long.bitCount(long).NETFramework中的任何位置?(对于那些不熟悉这些Java方法的人)这也被称为:HammingWeight人口计数(在硬件中实现时通常称为POPCNT。)虽然thereareplentyofimplementationstobe在网上找到的,我想知道是否有标准库实现。我知道这不在BitArray中,UInt32或BitConverter,但也许某处隐藏了一个版本,例如在加密函数中。 最佳答案 此功能不在.NETFra

java - 为什么在自动装箱期间发生 final long 到 Byte 的编译错误,但 final int 到 Byte 是可以的?

将int和short类型的常量自动装箱到Byte时没有错误,但long类型do有错误。为什么?finalinti=3;Byteb=i;//noerrorfinalshorts=3;Byteb=s;//noerrorfinallongl=3;Byteb=l;//error 最佳答案 来自JLSSec5.2,"Assignmentcontexts"(强调我的):Inaddition,iftheexpressionisaconstantexpression(§15.28)oftypebyte,short,char,orint:Anarro

java - TODO-FIXME : In Java 8's Integer class?

在阅读Java8的Integer时类,我遇到了以下FIX-ME:(第379行)//TODO-FIXME:convert(x*52429)intotheequivshift-add//sequence.评论全文如下://Iusethe"[invariantdivisionbymultiplication][2]"trickto//accelerateInteger.toString.Inparticularwewantto//avoiddivisionby10.////The"trick"hasroughlythesameperformancecharacteristics//asthe

Java:指定long时L和l(小写L)有区别吗?

当我将一个数字指定为具有常量值400的long时,使用400L和之间有什么区别吗400l?它与包装器类型有什么关系吗?L是否用于获取原始数据类型long的包装器Long和l? 最佳答案 没有实际的区别。L或l都可以使用,两者都表示一个long原语。此外,两者都可以是autoboxed到相应的Long包装器类型。但是,值得注意的是JLS-3.10.1-IntegerLiterals说(部分)AnintegerliteralisoftypelongifitissuffixedwithanASCIIletterLorl(ell);othe