小编vit*_*ang的帖子

TreeMap按值排序

我想写一个比较器,让我按值而不是默认的自然顺序对TreeMap进行排序.

我试过这样的东西,却找不到出了什么问题:

import java.util.*;

class treeMap {
    public static void main(String[] args) {
        System.out.println("the main");
        byValue cmp = new byValue();
        Map<String, Integer> map = new TreeMap<String, Integer>(cmp);
        map.put("de",10);
        map.put("ab", 20);
        map.put("a",5);

        for (Map.Entry<String,Integer> pair: map.entrySet()) {
            System.out.println(pair.getKey()+":"+pair.getValue());
        }
    }
}

class byValue implements Comparator<Map.Entry<String,Integer>> {
    public int compare(Map.Entry<String,Integer> e1, Map.Entry<String,Integer> e2) {
        if (e1.getValue() < e2.getValue()){
            return 1;
        } else if (e1.getValue() == e2.getValue()) {
            return 0;
        } else {
            return -1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想我要问的是:我可以Map.Entry传递给比较器吗?

java

124
推荐指数
6
解决办法
24万
查看次数

Amazon S3 boto - 如何创建文件夹?

如何使用botoAmazon s3的库在存储桶下创建文件夹?

我按照手册,创建了具有权限,元数据等的密钥,但没有在boto的文档中描述如何在存储桶下创建文件夹,或在存储桶中的文件夹下创建文件夹.

amazon-s3 boto

114
推荐指数
7
解决办法
10万
查看次数

django:过滤器无效

我有一个文章应用程序并尝试制作自定义过滤器,我在文章应用程序中有一个名为templatetags的目录,以及该目录中的tags.py,这是目录结构.

-manage.py(f)
-settings.py(f)
-articles(d)
 - templatetags(d)
  - tags.py(f)
Run Code Online (Sandbox Code Playgroud)

在模板上,文章有自己的目录,所有文章模板都从base.html模板扩展,这里是模板结构.

-base.html(f)
-articles(d)
 -index.html(f)
Run Code Online (Sandbox Code Playgroud)

我在base.html {%load tags%}中加载了代码并使用index.html中的自定义过滤器,并获得了无效的过滤器错误.

tags.py

from django import template                                                                                                                                                        
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter
@stringfilter
def space2Dash(s):
    return s.replace(' ', '_');
Run Code Online (Sandbox Code Playgroud)

我只是无法弄清楚我做错了什么.

编辑:我更改了过滤器名称,abcfilter.py并在我的文件中加载了文章应用程序settings.py

文章/ index.html的

 {% load abcfilter %}
 {{ "foo bar"|space2dash }}
Run Code Online (Sandbox Code Playgroud)

错误:

Request Method: GET
Request URL:    http://localhost:8080/articles/
Django Version: 1.2.5
Exception Type: TemplateSyntaxError
Exception Value:    
Invalid filter: 'space2dash'
Exception Location: ***/lib/python2.7/django/template/__init__.py in find_filter, line 363
Python Executable:  /usr/local/bin/python
Python Version: …
Run Code Online (Sandbox Code Playgroud)

django django-template-filters

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

通过watchFile检测node.js中的文件更改

我想了用于检测文件更改,如果该文件的变化,我会用child_process执行scp命令将文件复制到server.I抬头node.js的文档中,fs.watchFile功能似乎做什么,我想做,但当我尝试它,不知何故它只是没有按我的预期工作.使用以下代码:

var fs = require('fs');                                                                        

console.log("Watching .bash_profile");

fs.watchFile('/home/test/.bash_profile', function(curr,prev) {
    console.log("current mtime: " +curr.mtime);
    console.log("previous mtime: "+prev.mtime);
    if (curr.mtime == prev.mtime) {
        console.log("mtime equal");
    } else {
        console.log("mtime not equal");
    }   
});
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,如果我访问监视文件,回调函数得到执行,它将输出相同的mtime,并始终输出"mtime not equal"(我只访问该文件).输出:

Watching .bash_profile
current mtime: Mon Sep 27 2010 18:41:27 GMT+0100 (BST)
previous mtime: Mon Sep 27 2010 18:41:27 GMT+0100 (BST)
mtime not equal
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么if语句失败(也尝试使用===识别检查,但仍然得到相同的输出)当两个mtime是相同的?

javascript node.js

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

如何将RTK查询放入store/slice?

我刚开始使用 RTK 查询,但遇到问题

我的应用程序在一个大 JSON 中包含所有设置,因此我创建一个 RTK 查询来获取设置。在教程中,示例是关于useQuery在组件中使用钩子并立即显示结果,但由于设置太大,因此需要多个页面/组件来显示它并允许用户更改设置

因为需要更改设置,所以我认为将状态放入商店是一个好主意,我的问题是如何将API结果放入商店?

我可以看到一些围绕它的方法

  1. useQuery在组件中使用,当它产生时,然后进行调度以将数据放入存储中

  2. 从 API 中放入useQuery所有组件都使用它并使用它来获取缓存数据,那么就不需要将其放在存储上并使用组件状态来设置更改(我不确定这种方法,因为有很多设置 - 即使分为不同的页面,使用组件状态来管理它似乎也不正确)

我是 RTK 和 RTK 查询的新手,只是想知道最好/好的方法是什么?

reactjs redux redux-toolkit rtk-query

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

clojure/lein REPL with jline

出于某种原因,我无法使用jj的clojure REPL,我做的是git克隆github上的clojure存储库然后运行ant来构建它,然后我将jline-0.9.94.jar下载到clojure.jar的目录中,然后运行以下命令:

java -cp jline-0.9.94.jar:clojure.jar jline.ConsoleRunner clojure.main
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

    Exception in thread "main" java.lang.ClassNotFoundException: clojure.main
 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:164)
 at jline.ConsoleRunner.main(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

以下是我当前目录中的文件:

vvshs-macbook-2:clojure vvsh$ ls
build.xml                                 clojure-sources-1.2.0-master-SNAPSHOT.jar epl-v10.html                              src
classes                                   clojure-sources.jar                       jline-0.9.94.jar                          test
clojure-1.2.0-master-SNAPSHOT.jar         clojure.iml                               pom-template.xml
clojure-slim-1.2.0-master-SNAPSHOT.jar    clojure.jar                               pom.xml
clojure-slim.jar                          doc                                       readme.txt
vvshs-macbook-2:clojure vvsh$ 
Run Code Online (Sandbox Code Playgroud)

我在clojure 1.1和lein repl上得到了同样的错误(似乎lein维护了自己的clojure版本).

顺便说一句,这是在mac ox 10.5.8

java version "1.5.0_24"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_24-b02-357-9M3165)
Java HotSpot(TM) Client VM (build …
Run Code Online (Sandbox Code Playgroud)

clojure jline

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