相关疑难解决方法(0)

'同步'是什么意思?

我对synchronized关键字的用法和重要性有一些疑问.

  • synchronized关键字有什么意义?
  • 方法何时应该synchronized
  • 这在编程和逻辑上意味着什么?

java multithreading synchronized keyword

958
推荐指数
12
解决办法
48万
查看次数

实现Map并保持插入顺序的Java类?

我正在寻找一个具有键值关联的java类,但不使用哈希.这是我目前正在做的事情:

  1. 添加值到a Hashtable.
  2. 获取一个迭代器Hashtable.entrySet().
  3. 迭代所有值并:
    1. 获取一个Map.Entry迭代器.
    2. Module根据值创建类型(自定义类)的对象.
    3. 将类添加到JPanel.
  4. 显示面板.

这个问题是我无法控制返回值的顺序,所以我不能以给定的顺序显示值(不对代码进行硬编码).

我会使用一个ArrayListVector为此,但稍后在代码中我需要抓取Module给定Key 的对象,我无法使用ArrayListVector.

有没有人知道一个可以执行此操作的免费/开源Java类,或者Hashtable根据添加时间来获取值的方法?

谢谢!

java dictionary key-value

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

Java List.add()UnsupportedOperationException

我尝试将对象添加到List<String>实例,但它会抛出一个UnsupportedOperationException.有谁知道为什么?

我的Java代码:

String[] membersArray = request.getParameterValues('members');
List<String> membersList = Arrays.asList(membersArray);

for (String member : membersList) {
    Person person = Dao.findByName(member);
    List<String> seeAlso;
    seeAlso = person.getSeeAlso();
    if (!seeAlso.contains(groupDn)){
        seeAlso.add(groupDn);
        person.setSeeAlso(seeAlso);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误消息:

java.lang.UnsupportedOperationException
    java.util.AbstractList.add(Unknown Source)
    java.util.AbstractList.add(Unknown Source)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

java exception list arraylist unsupportedoperation

197
推荐指数
3
解决办法
12万
查看次数

Java:如何将HashMap <String,Object>转换为数组

我需要将a转换HashMap<String, Object>为数组; 有谁能告诉我它是如何完成的?

java arrays collections hashmap

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

Dictionary和Hashtable之间的区别

可能重复:
为什么Dictionary优先于C#中的哈希表?

Dictionary和Hashtable有什么区别.如何决定使用哪一个?

c# collections

106
推荐指数
6
解决办法
17万
查看次数

何时使用Comparable和Comparator

我有一个对象列表,我需要在一个字段上排序,比如分数.在没有多想的情况下,我编写了一个实现Comparator的新类,它可以执行任务并且可以正常运行.

现在回过头来看,我想知道我是否应该让我的类实现Comparable,而不是创建一个实现Comparator的新类.分数是对象将被订购的唯一字段.

  1. 我做过什么可以接受的做法?

  2. 是正确的方法"首先让类实现Comparable(对于自然顺序),如果需要替代字段比较,那么创建一个实现Comparator的新类"?

  3. 如果上面的(2)为真,那么它是否意味着只有在具有类实现Comparable之后才应该实现Comparator?(假设我拥有原始课程).

java comparable comparator

106
推荐指数
10
解决办法
11万
查看次数

HashMap Java 8实现

根据以下链接文档:Java HashMap Implementation

我对HashMap(或者更确切地说是增强HashMap)的实现感到困惑.我的疑问是:

首先

static final int TREEIFY_THRESHOLD = 8;
static final int UNTREEIFY_THRESHOLD = 6;
static final int MIN_TREEIFY_CAPACITY = 64;
Run Code Online (Sandbox Code Playgroud)

为什么以及如何使用这些常量?我想要一些明确的例子. 他们如何通过这个获得性能提升?

其次

如果您HashMap在JDK中看到源代码,您将找到以下静态内部类:

static final class TreeNode<K, V> extends java.util.LinkedHashMap.Entry<K, V> {
    HashMap.TreeNode<K, V> parent;
    HashMap.TreeNode<K, V> left;
    HashMap.TreeNode<K, V> right;
    HashMap.TreeNode<K, V> prev;
    boolean red;

    TreeNode(int arg0, K arg1, V arg2, HashMap.Node<K, V> arg3) {
        super(arg0, arg1, arg2, arg3);
    }

    final HashMap.TreeNode<K, V> root() {
        HashMap.TreeNode arg0 …
Run Code Online (Sandbox Code Playgroud)

java dictionary hashmap java-8

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

java中volatile关键字的最简单易懂的例子

我正在阅读Java中的volatile关键字并完全理解它的理论部分.

但是,我正在寻找的是一个很好的案例,它展示了如果变量不是易变的话会发生什么.

下面的代码片段无法正常工作(来自aioobe)

class Test extends Thread {

    boolean keepRunning = true;

    public void run() {
        while (keepRunning) {
        }

        System.out.println("Thread terminated.");
    }

    public static void main(String[] args) throws InterruptedException {
        Test t = new Test();
        t.start();
        Thread.sleep(1000);
        t.keepRunning = false;
        System.out.println("keepRunning set to false.");
    }
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,如果keepRunning不是volatile,则线程应该继续无限运行.但是,它会在几秒钟后停止.

我有两个基本问题: -

  • 任何人都可以用例子解释volatile吗?不是来自JLS的理论.
  • 是不稳定的替代同步?它是否实现了原子性?

java concurrency multithreading volatile

71
推荐指数
6
解决办法
7万
查看次数

Java中的ConcurrentHashMap和Hashtable

Java中的ConcurrentHashMap和Hashtable有什么区别?

哪个对线程应用程序更有效?

java hashtable hashmap

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

HashMap和字典ADT之间的区别

哈希映射和字典ADT之间有什么区别.什么时候比较喜欢一个.对于我的编程作业,我的导师要求使用其中一个,但我认为两者之间没有任何区别.该计划应该与一个巨大的没有.字符串.有什么建议?

java data-structures

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