小编DCh*_*123的帖子

有人可以向我解释这个例子中的 PriorityQueue 吗?

我正在尝试学习如何使用 PriorityQueue,因为我以前从未使用过。这是我在 LeetCode 上找到的一个正在使用的示例,用于解决在字符串数组中查找前 K 个元素的问题

public List<String> topKFrequent(String[] words, int k) {
    Map<String, Integer> count = new HashMap();
    for (String word: words) {
        count.put(word, count.getOrDefault(word, 0) + 1);
    }
    PriorityQueue<String> heap = new PriorityQueue<String>(
            (w1, w2) -> count.get(w1).equals(count.get(w2)) ?
            w2.compareTo(w1) : count.get(w1) - count.get(w2) );

    for (String word: count.keySet()) {
        heap.offer(word);
        if (heap.size() > k) heap.poll();
    }

    List<String> ans = new ArrayList();
    while (!heap.isEmpty()) ans.add(heap.poll());
    Collections.reverse(ans);
    return ans;
}
Run Code Online (Sandbox Code Playgroud)

更值得注意的是,我想知道这条线在做什么:

PriorityQueue<String> heap = new PriorityQueue<String>(
            (w1, w2) -> count.get(w1).equals(count.get(w2)) …
Run Code Online (Sandbox Code Playgroud)

java priority-queue data-structures

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

我可以让我的应用程序打开另一个应用程序并单击其中的按钮吗?

假设我的手机上有一个预先存在的 Android 应用程序,它的主屏幕上有一个我可以单击的按钮。我知道有一种方法可以从我正在创建的应用程序启动该应用程序,但是有没有一种方法可以自动单击该按钮?是否有我可以传入的参数,我将如何使用它?

java android android-activity

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