小编Sop*_*ner的帖子

如何在C++中获取文件大小?

让我们为这个问题创建一个补充问题.在C++中获取文件大小的最常用方法是什么?在回答之前,确保它是可移植的(可以在Unix,Mac和Windows上执行),可靠,易于理解且没有库依赖(没有boost或qt,但是例如glib是可以的,因为它是可移植的库).

c++ filesize

123
推荐指数
5
解决办法
24万
查看次数

如何在Eclipse中增加应用程序堆大小?

有人说我需要在运行配置中为我的应用程序执行此操作.当我打开那个窗口时,你能告诉我如何设置正确的参数和内存量吗?说如何设置2GB或1.5GB?

eclipse heap jvm

54
推荐指数
3
解决办法
15万
查看次数

具有两个int属性的自定义类的hashCode是什么?

在Java中,我有一个表示带有int坐标的点的类

public class Point {
    int x = -1;
    int y = -1;

    public Point (int xNew, int yNew) {
        x = xNew; y = yNew;
    }

    public boolean equals (Object o) {
        // no need for (o instanceof Point) by design
        return x == ((Point)o).x && y == ((Point)o).y;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用类的对象Point作为a中的键HashMap和作为元素HashSet.

什么是该hashCode功能的最佳候选人?我会把它加倍,这样左边的部分是x而右边的部分是y,例如: x = 4, y = 12,然后hashCode返回4.12.但是通过实现,它不能是double,只能是int.

这不是一个选择:

public int hashCode() {
    // no …
Run Code Online (Sandbox Code Playgroud)

java equals hashcode

30
推荐指数
4
解决办法
2万
查看次数

Java 32位系统int []数组的内存大小

在Java中,用于占用int[]大小数组的内存n等于(4 + n) * 4字节.

实际上可以通过以下代码证明:

public class test {

    public static void main(String[] args) {

        long size = memoryUsed();
        int[] array = new int[2000];
        size = memoryUsed() - size;
        if (size == 0)
            throw new AssertionError("You need to run this with -XX:-UseTLAB for accurate accounting");
        System.out.printf("int[2000] used %,d bytes%n", size);

    }

    public static long memoryUsed() {
        return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    }

}
Run Code Online (Sandbox Code Playgroud)

4括号中的数字很有意思.第一部分4字节采用数组引用,第二部分 - 数组长度,然后剩下8个字节?

java memory arrays int

10
推荐指数
1
解决办法
1389
查看次数

检查是否存在HashMap密钥

在Java中,让HashMap完全填充这种形式的数据:

HashMap<Integer, int[]> map = new HashMap<Integer, int[]>(1000000, 1);
Run Code Online (Sandbox Code Playgroud)

检查随机密钥是否存在时更快,比如说100:

if (map.get(100) == null))
Run Code Online (Sandbox Code Playgroud)

要么

if (!map.containsKey(100))
Run Code Online (Sandbox Code Playgroud)

从微观优化的角度来看问题很有意思.

java hashmap micro-optimization containskey

9
推荐指数
2
解决办法
4万
查看次数

如何在亚马逊ec2上运行简单的Java应用程序?

我可以访问亚马逊云服务ec2,linux实例.我vi first.java用这个内容创建了文件:

class first {
    public static void main(String[] args) {
        System.out.println("abc");
    }
}
Run Code Online (Sandbox Code Playgroud)

我想使用以下方法编译文件:

[root@ip-21-24-273-243 ec2-user]# javac first.java 
bash: javac: command not found
Run Code Online (Sandbox Code Playgroud)

没有找到指令?我做:

[root@ip-21-24-273-243 ec2-user]# java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.9) (amazon-57.1.11.9.52.amzn1-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)

所以安装了java.我怎么能运行一个简单的应用程序?

[root@ip-21-24-273-243 ec2-user]# yum install java
Loaded plugins: priorities, security, update-motd, upgrade-helper
amzn-main                                                                                                                      | 2.1 kB     00:00     
amzn-updates                                                                                                                   | 2.3 kB     00:00     
Setting up Install Process
Package 1:java-1.6.0-openjdk-1.6.0.0-57.1.11.9.52.amzn1.x86_64 already installed and latest …
Run Code Online (Sandbox Code Playgroud)

java amazon-ec2

8
推荐指数
2
解决办法
2万
查看次数

最快的Java HashSet <Integer>库

除了这篇相当古老的帖子之外,我还需要一些能够使用原语并为包含大量HashSets的应用程序提供加速的东西Integers:

Set<Integer> set = new HashSet<Integer>();
Run Code Online (Sandbox Code Playgroud)

所以人们提到像Guava,Javalution,Trove这样的图书馆,但是在基准和性能结果方面没有完美的比较,或者至少是来自良好体验的良好答案.从我看到很多人推荐Trove的TIntHashSet,但其他人说它不是那么好; 有人说Guava是超级冷却和可管理的,但我不需要美观和可维护性,只需时间执行,所以Python的样式番石榴回家:) Javalution?我访问过该网站,对我来说似乎太老了,因此很古怪.

图书馆应提供最佳的可实现时间,内存无关紧要.

查看"Thinking in Java",可以创建HashMap使用int[]as键创建自定义.所以我希望看到类似的东西HashSet或只是下载并使用一个惊人的库.

EDIT(响应下面的评论)所以在我的项目中,我从大约50个HashSet<Integer>集合开始,然后我调用一个函数大约1000次,内部创建多达10个HashSet<Integer>集合.如果我更改初始参数,则数字可能会以指数方式增长.我只用add(),contains()以及clear()对这些集合的方法,这就是为什么他们选择.

现在我要找到一个实现HashSet或类似的库,但是由于自动装箱Integer开销会更快地完成,也许还有其他我不知道的东西.事实上,我正在使用整数,因为我的数据进入并存储在那些数据中HashSet.

java performance hashset

7
推荐指数
1
解决办法
6172
查看次数

在for循环中重新创建ArrayList的最快方法

在Java中,使用以下函数为巨大的矩阵X打印其列不同的元素:

// create the list of distinct values
List<Integer> values = new ArrayList<Integer>();

// X is n * m int[][] matrix
for (int j = 0, x; j < m; j++) {
    values.clear();
    for (int i = 0; i < n; i++) {
        x = X[i][j];
        if (values.contains(x)) continue;
        System.out.println(x);
        values.add(x);
    }
}
Run Code Online (Sandbox Code Playgroud)

首先,我按列(索引j)和内部按行(索引i)进行迭代.

对于不同的矩阵,此函数将被调用数百万次,因此应优化代码以满足性能要求.我想知道值数组.使用values = new ArrayList<Integer>();values = null替代它会更快values.clear()吗?

java arraylist clear

6
推荐指数
1
解决办法
4936
查看次数

首个Java程序输出不正确

对不起真的很愚蠢的问题,我正在学习一门新语言并使用这段代码:

public class Exercise01 {
    int i;
    char c;

    public static void main(String[] args) {

        Exercise01 E = new Exercise01();
        System.out.println("i = " + E.i);
        System.out.println("c = [" + E.c + "]");
    }
}
/* Output:
i = 0
c = [
*/
Run Code Online (Sandbox Code Playgroud)

为什么输出不会产生"]"字符?它与Unicode有关吗?

PostEdited:变量Ec未初始化用于实验目的.

java

5
推荐指数
3
解决办法
314
查看次数

在Java中查找一个int子集的补充

让我们int[] A = new int[1000]int[] subA = new int [300]这样subA \in A(subA的一个子集A).如何A \ subA在Java中以最快的方式查找数组?两个给定的数组AsubA排序.

编辑:抱歉,忘了提到数组包含不同的元素,只是它们包含其他结构的矩形,如矩阵行.

我在考虑这个解决方案:

// supp is short for supplement
int[] supp = new int[A.length - subA.length];
int j = A[0], c = 0;
for (int i = 0; i < subA.lengh; i++) {
    // elegantly can be: while (j < subA[i]) supp[c++] = j++;
    while (j < subA[i]) {
        supp[c] …
Run Code Online (Sandbox Code Playgroud)

java arrays sorting algorithm set

5
推荐指数
1
解决办法
510
查看次数