小编d0p*_*0pe的帖子

使用IgnoreCase按键对Map <String,Object>进行排序?

好吧,我测试了TreeMap,但它没有考虑字符串比较中的IgnoreCase.我需要按字典顺序排序并忽略大小写.还有其他方法吗?

谢谢,这是有效的(TreeMap(Comparator c)).但是,我有另一个问题:

public final Comparator<Object> STR_IGN_CASE_COMP = new Comparator<Object>() {

    public int compare(Object h1, Object h2) {
            String s1 = h1.getId();
            String s2 = h2.getId();
            return s1.compareToIgnoreCase(s2);
    }
}; //STR_IGN_CASE_COMP
Run Code Online (Sandbox Code Playgroud)

如何将比较器广泛化以适应不同的对象?假设所有人都有getId()方法.

谢谢,马丁

java sorting collections string-comparison treemap

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

Java TreeMap(比较器)和get方法忽略了比较器

public final Comparator<String> ID_IGN_CASE_COMP = new Comparator<String>() {

        public int compare(String s1, String s2) {
            return s1.compareToIgnoreCase(s2);
        }
    };

private Map< String, Animal > _animals = new TreeMap< String, Animal >(ID_IGN_CASE_COMP);
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何使用方法get(id)忽略给定的比较器.我希望地图按Case Insensitive排序,但是,当我通过给定键获取值时,我希望它区分大小写.

java treemap comparator

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

代码块重定向输入输出

我是代码块的新手,我似乎无法使用<input>输出的命令行参数.有谁知道怎么做?

我现在能够读取从argv [1]传递的文件但是,程序不会自动读取给定文件的输入,也不会将输出正确输出到文件输出.

我知道它是在set程序的参数上,我的参数行是:list.txt <input> output

经过一些研究,我看到一个人这样做:<./ input> ./output,好像在运行一个程序给出输入和输出,无论如何,我也尝试过无济于事.我是否需要使用文件处理程序与之交互?它没有出现,简单的getchar()应该从传递的输入文件中读取.

我在这里错过了什么?

提前致谢

c redirect input codeblocks output

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

Prolog列表,参数和返回值

我是prolog的新手,我无法弄清楚这一点.

我正在尝试构建一个简单的程序,它接收一个谓词列表,搜索列表中的特定谓词,并将一个函数应用于该谓词的参数.

这些方面的东西:

?- program([pred1(a,b,p), pred2(d,b,p), pred2 (a,c,p)]). 

program (list1) :- 
search(pred2(X,Y,p),list1).
doSomething (X,Y) % with the X and Y returned from search function, both of them.
Run Code Online (Sandbox Code Playgroud)

基本上,我想使用从目标返回的所有值search(pred2(X,Y,p),list1)并在另一个函数上使用它们.


好的,我在prolog中尝试了一些东西,然后来到这里:

member(X, [X | _]).

member(X, [_ | R]) :- member(X, R).

prog(L1,Out) :- member(pred2(X,Y), L1).

?- prog ([(pred1(a,b),pred2(c,b),pred2(d,a)],Out).
Run Code Online (Sandbox Code Playgroud)

它按照预期给出了2倍,但我想得到Out = [c,b]Out = [d,a].我怎么能做到这一点?

关于Oak的回答:我认为它不是一种过程语言,但我无法弄清楚如何访问值并在prolog中使用它们.你的例子没那么有用.

parameters list prolog

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

Java序列化比较器

是否可以使用比较器序列化TreeMap?

我已经测试了它并且它没有比较器很好地序列化树形图,当你添加比较器时,它会引发异常.

如果我将比较器声明为瞬态,它仍然不起作用.它只适用于我使每个树图瞬态但在这种情况下它不会序列化树.

java serialization comparator

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