相关疑难解决方法(0)

为什么有些人声称Java的泛型实现很糟糕?

我偶尔听说过,通用泛型,Java并没有把它弄好.(最近的参考,这里)

原谅我的经验不足,但是什么会让他们变得更好?

java generics

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

Hashmap不适用于int,char

可能重复:
在Java集合中存储原始值?

在java中我使用以下内容: -

public HashMap<char, int> buildMap(String letters)
{
    HashMap<char, int> checkSum = new HashMap<char, int>();

    for ( int i = 0; i < letters.length(); ++i )
    {
        checkSum.put(letters.charAt(i), primes[i]);
    }

    return checkSum;
}
Run Code Online (Sandbox Code Playgroud)

我收到与不适当类型有关的错误.我分别使用Character和Integer而不是char和int解决了我的问题.但是,我无法弄清楚为什么HashMap无法处理原始数据类型.

java hashmap

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

为什么有些语言需要拳击和拆箱?

这不是什么是装箱和拆箱的问题,而是为什么像Java和C#这样的语言需要呢?

我非常熟悉C++,STL和Boost.

在C++中,我可以很容易地写出这样的东西,

std::vector<double> dummy;
Run Code Online (Sandbox Code Playgroud)

我有一些Java经验,但我真的很惊讶,因为我必须写这样的东西,

ArrayList<Double> dummy = new ArrayList<Double>();
Run Code Online (Sandbox Code Playgroud)

我的问题,为什么它应该是一个对象,在谈论泛型时,在技术上如此难以包含原始类型?

c++ java generics boxing unboxing

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

Java集合.为什么没有原始类型?

可能重复:
在java集合中存储原始值?

我的Java教科书说集合的元素,例如ArrayList,不能是原始类型.是否有一个原因?我的意思是Sun的某个人是否决定了这一点,或者是否存在阻碍这样做的障碍?我理解我的例子半答案我的问题,因为ArrayList需要一个对象,而原语不是对象.但后来我想为什么它们也不能有原始类型呢?

java collections arraylist primitive-types

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

为什么java.util.ArrayList中不允许原始数据类型?

可能重复:
在Java集合中存储原始值?

ArrayList仅接受引用类型作为其元素,而不接受原始数据类型.尝试这样做时会产生编译时错误.

这背后的概念是什么?这似乎是一种限制,不是吗?

java arraylist

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

如何初始化两列arraylist?

我需要创建一个记录两列{int,String}的List.我认为ArrayList是我需要的,但我无法理解它.我从数据库中提取了字符串,而int是我需要识别字符串位置以供日后使用的索引值.

List<List<String>> strArray = ArrayList<List<String>>;

然后我可以为我从数据库中提取的每一行执行类似strArray.add().add()的操作吗?

java android arraylist

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

检查数组是否有某个字符,为什么我的代码不起作用?

你好这里是一些检查有效字符的代码,虽然代码不起作用.即使'operand'是有效字符,它也永远不会打印是,并返回false.无论什么即使角色有效,它也只是不识别它并且总是转到else语句.请帮忙!

public static boolean checkValidOperands(char operand) {

    char[] validOperators = {'+', '-', '*', '/', 'q'};
    List<char[]> validOp = Arrays.asList(validOperators);
    if (validOp.contains(operand))  {
        System.out.println("Yes");
        return false;
    }  else {
        System.out.println("Please enter valid operand");
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays search contains

4
推荐指数
1
解决办法
6476
查看次数

如何将原始类型存储在Hashmap中或列为值而不是包装类对象

我在接受采访时问了这个问题.

我知道原始类型将被转换为包装类对象以存储在任何数据结构中.

但是面试官问我,我不希望它成为一个包装类对象,它应该存储为原始类型.

我们怎么做?

java core

3
推荐指数
1
解决办法
9896
查看次数

构建内存高效 Java 应用程序的最佳实践有哪些?

Java 程序可能非常消耗内存。例如,一个Double对象有 24 个字节:8 个字节的数据和 16 个字节的 JVM 施加的开销。一般来说,表示原始类型的对象非常昂贵。

Java 标准库中的任何集合都会发生同样的情况。甚至还有一些违反直觉的事实,例如 aHashSet比 a 更需要内存HashMap,因为 aHashSet包含HashMap内部 ( http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html )。

在高性能设置中对数据进行建模和对象委派时,您能否提出一些建议,以便减轻 Java 的这些“弱点”?

java performance memory-leaks

3
推荐指数
1
解决办法
4621
查看次数

为什么Hashmap值类型需要double []但不能加倍?

我正在开发一个java应用程序,我在其中使用Hashmap,它将字符串作为键,并将double作为值,但我知道Hashmap不能将原始类型作为泛型,但它可以使用double [].我可以知道为什么吗?

java hashmap

2
推荐指数
1
解决办法
396
查看次数

为什么可以创建基元数组的集合而不是基元集合

Java不支持使用基元创建集合,因此后续构造会出现编译错误("参数不能是基本类型):

 List<int> ints = new ArrayList<int>(); 
Run Code Online (Sandbox Code Playgroud)

另一方面,允许创建数组或基元的集合,因此以下构造是可以的:

List<int[]> ints = new ArrayList<int[]>();
Run Code Online (Sandbox Code Playgroud)

这背后的逻辑是什么?


编辑:问题实际上是关于基元数组,而不是基元,所以请不要解释为什么我不能将基元存储在集合中,而是为什么我可以在集合中编写基元数组?

java

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

是否有更有效的方法在ArrayList和Array之间进行转换

使用Java,我有一个类,它将网页检索为字节数组.然后我需要删除一些内容(如果存在).(该应用程序监视网页的变化,但需要从PHP创建的html中删除会话ID,并且意味着每次访问该页面时都会检测到更改).

一些生成的字节数组可能是1000个字节长的10.它们不是这样存储的 - 存储了16字节的MD5页面.但是,它是需要处理的原始全尺寸字节数组.

(更新 - 代码不起作用.请参阅下面的AH评论)显示我的代码的测试:

public void testSessionIDGetsRemovedFromData() throws IOException
    {

        byte[] forumContent = "<li class=\"icon-logout\"><a href=\"./ucp.php?mode=logout&amp;sid=3a4043284674572e35881e022c68fcd8\" title=\"Logout [ barry ]\" accesskey=\"x\">Logout [ barry ]</a></li>".getBytes();

        byte[] sidPattern = "&amp;sid=".getBytes();
        int sidIndex = ArrayCleaner.getPatternIndex(forumContent, sidPattern);
        assertEquals(54, sidIndex);

        // start of cleaning code
        ArrayList<Byte> forumContentList = new ArrayList<Byte>();
        forumContentList.addAll(forumContent);
        forumContentList.removeAll(Arrays.asList(sidPattern));

        byte[] forumContentCleaned = new byte[forumContentList.size()];
        for (int i = 0; i < forumContentCleaned.length; i++)
        {
            forumContentCleaned[i] = (byte)forumContentList.get(i);
        }
        //end of cleaning code

        sidIndex = ArrayCleaner.getPatternIndex(forumContentCleaned, sidPattern);
        assertEquals(-1, …
Run Code Online (Sandbox Code Playgroud)

java arrays performance arraylist

0
推荐指数
1
解决办法
683
查看次数

如何通过不同的函数将int添加到ArrayList

你是如何做到这一点的?它说在功能addint中找不到可变AL.如何在不同的函数中添加int到Arraylist?

/**
 * Constructor
 */
public Player()
{
    ArrayList<int> AL = new ArrayList();
}

public void addint(int C){
    AL.add(C);
}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
113
查看次数