小编Rae*_*ald的帖子

从HashMap检索的值的顺序是插入顺序

我正在尝试找出可以检索HashMap中的值的顺序.下面是代码片段.

import java.util.HashMap;

public class HashMapExample {

   public static void main(String[] args) {
       HashMap<Integer, String> hashmap = new HashMap<Integer, String>();
       hashmap.put(1, "apple" );
       hashmap.put(2, "lemon" );
       hashmap.put(3, "orange" );
       hashmap.put(4, "banana" );
       hashmap.put(5, "litchi" );
       hashmap.put(6, "mango" );
       hashmap.put(7, "papaya" );

       System.out.println(hashmap.size());

       for (String key : hashmap.values()) {
           System.out.println(key);
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

输出:

7
apple
lemon
orange
banana
litchi
mango
papaya
Run Code Online (Sandbox Code Playgroud)

值按插入顺序打印.一般来说这是真的吗?我期待值以任意顺序打印.这是使用Java 6.

java hashmap

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

为什么我的assertEquals()在JUnit中不推荐使用?

我想知道为什么assertEquals(double, double)被弃用了.

我用过import static org.junit.Assert.assertEquals;,我使用过JUnit 4.11.

以下是我的代码:

import org.junit.Test;
import static org.junit.Assert.assertEquals;


public class AccountTest {

@Test
public void test() {
    Account checking = new Account(Account.CHECKING);
    checking.deposit(1000.0);
    checking.withdraw(100.0);
    assertEquals(900.0, checking.getBalance());
   }
}
Run Code Online (Sandbox Code Playgroud)

checking.getBalance() 返回一个double值.

可能有什么不对?

java junit junit4

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

为什么if/else if/else是一个简单的布尔值,没有给出"无法访问的代码"错误

为什么这段代码没有给出"无法访问的代码"错误?由于布尔值只能为true或false.

public static void main(String args[]) {
    boolean a = false;
    if (a == true) {

    } else if (a == false) {

    } else {
        int c = 0;
        c = c + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

java boolean unreachable-code

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

如何将std :: string写入UTF-8文本文件

我只想在C++中用文本文件写一些简单的行,但我希望它们用UTF-8编码.这样做的最简单方法是什么?

c++ utf-8

57
推荐指数
6
解决办法
10万
查看次数

为什么用浮点(或双精度)数除零不会在Java中抛出java.lang.ArithmeticException:/ by

以下陈述java.lang.ArithmeticException: / by zero显而易见.

System.out.println(0/0);
Run Code Online (Sandbox Code Playgroud)

因为文字0被认为是int文字并且在整数算术中不允许除以零.

但是,以下情况不会抛出任何异常java.lang.ArithmeticException: / by zero.

int a = 0;
double b = 6.199;
System.out.println((b/a));
Run Code Online (Sandbox Code Playgroud)

它显示Infinity.

以下语句生成NaN(非数字),没有例外.

System.out.println(0D/0); //or 0.0/0, or 0.0/0.0 or 0/0.0 - floating point arithmetic.
Run Code Online (Sandbox Code Playgroud)

在这种情况下,两个操作数都被认为是双精度数.


同样,以下语句不会抛出任何异常.

double div1 = 0D/0; //or 0D/0D
double div2 = 0/0D; //or 0D/0D

System.out.printf("div1 = %s : div2 = %s%n", div1, div2);
System.out.printf("div1 == div2 : %b%n", div1 == div2);
System.out.printf("div1 …
Run Code Online (Sandbox Code Playgroud)

java exception dividebyzeroexception arithmeticexception

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

在Android Exceptions中使用printStackTrace()是一个坏主意吗?

在像这样的Android Exceptions中使用printStackTrace()是一个坏主意吗?

} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

java exception printstacktrace

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

如何将文件从一个位置复制到另一个位置?

我想将文件从一个位置复制到Java中的另一个位置.

这是我到目前为止:

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
public class TestArrayList {
    public static void main(String[] args) {
        File f = new File(
            "D:\\CBSE_Demo\\Demo_original\\fscommand\\contentplayer\\config");
        List<String>temp=new ArrayList<String>();
        temp.add(0, "N33");
        temp.add(1, "N1417");
        temp.add(2, "N331");
        File[] matchingFiles = null;
        for(final String temp1: temp){
            matchingFiles = f.listFiles(new FilenameFilter() {
                public boolean accept(File dir, String name) {
                    return name.startsWith(temp1);
                }
            });
            System.out.println("size>>--"+matchingFiles.length);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这不会复制文件,执行此操作的最佳方法是什么?

java io

56
推荐指数
4
解决办法
19万
查看次数

何时在Java中使用辅助类的内部类

如果我有一个类和一个辅助类来执行它的一些功能,那么将它作为内部类是否有意义.

    public class Foo {
       private FooHelper helper;

       // constructor & any other logic

       public void doSomeThing() {
         helper.do();
       }
    }

    public class FooHelper {
        public void do() {
         // code
        }
    }
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,将内容FooHelper作为一个内部类是否有意义?道歉,如果这听起来很愚蠢,但我对用例感到困惑.

java inner-classes

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

openjdk-6-jre,openjdk-6-jre-headless,openjdk-6-jre-lib之间的区别

我无法理解Java JRE的一些基础知识.

我需要在嵌入式系统中运行Java代码,为此我需要在Linux内核中安装最小的Java Runtime Environment,也就是说,执行Java二进制文件所需的最小包.我认为只有JVM才能做到这一点(JRE包是必要的,我在这里错了吗?)

问题是,在查看Debian存储库时,我不太了解这些包之间的差异openjdk-6-jre,openjdk-6-jre-headless并且openjdk-6-jre-lib.Java程序只能与前者一起运行吗?或者,他们三个需要吗?

这是一个问题,因为它们之间的大小(MB)存在很大差异.

java openjdk

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

什么是堆栈映射框架

我最近一直在研究Java虚拟机规范(JVMS),试图更好地理解我的程序是如何工作的,但我找到了一个我不太了解的部分......

4.7.4节描述了StackMapTable属性,在该部分中,文档详细介绍了堆栈映射帧.问题在于它有点罗嗦,我通过榜样学得最好; 不是通过阅读.

我知道第一个堆栈映射帧是从方法描述符派生的,但我不明白如何(这应该在这里解释.)另外,我不完全理解堆栈映射帧的作用.我认为它们与Java中的块类似,但看起来好像你不能在彼此内部堆栈映射帧.

无论如何,我有两个具体问题:

  • 堆栈映射框架有什么作用?
  • 如何创建第一个堆栈映射框架?

还有一个普遍的问题:

  • 有人能提供的解释比JVMS中给出的解释更少,更容易理解吗?

java jvm bytecode stack-frame

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