小编Ger*_*ári的帖子

Java比较器使用非最终变量

我想使用包含每个项目值的地图对列表进行排序.

Map<Integer, Float> map = new HashMap<>();
List<Integer> list = new ArrayList<>();

map.put(0, 0.0f);
map.put(1, 5.0f);
map.put(2, 2.0f);

list = new ArrayList<>(map.keySet());

Collections.sort(list, new Comparator<Integer>() {
    public int compare(Integer left, Integer right) {
        Float leftCost = map.get(left);
        Float rightCost = map.get(right);
        return leftCost.compareTo(rightCost);
    }
})
Run Code Online (Sandbox Code Playgroud)

我希望订单是0,2,1因为价值1高于2.但是java不要让我这样做.我收到以下错误:Cannot refer to a non-final variable map inside an inner class defined in a different method

我怎么能这样做呢?

java sorting collections final list

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

c ++模板问题

我有一个类,其中有一个模板用于其他目的:

template<class t>
class MyClass {
    public: //of course public...
    t foo;
    std::string text;
}
Run Code Online (Sandbox Code Playgroud)

我有另一个类,该方法通过参数获取所有类的这些类,并希望将指针存储在数组中.该类不希望仅访问类的特定(临时)部分的公共属性/方法.

class Container {
    public: //of course public...
    MyClass* array; //this is allocated with some magic.
    void bar(MyClass& m) {
      and want to store the class in a MyClass* array.
    }
}
Run Code Online (Sandbox Code Playgroud)

这是模板的参数列表缺失的错误

我怎么能解决这个问题?

c++ templates class

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

php sha1不等于java sha1

可能重复:
Java的MessageDigest SHA1算法返回的结果与php的SHA1函数不同

我用的是什么:

Java的:

public String sha1(String s) {
    try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1");
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuffer hexString = new StringBuffer();
        for (int i = 0; i < messageDigest.length; i++)
            hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
        return hexString.toString();

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return "";
}
Run Code Online (Sandbox Code Playgroud)

结果:

java: System.out.println(sha1("foobar123dsadn23u1wdqqwdyxdasd"));
php:                echo sha1('foobar123dsadn23u1wdqqwdyxdasd');

php:  d8033103e9aaf67af13a4b45534b2d0f6d8dfded
java: d83313e9aaf67af13a4b45534b2df6d8dfded
Run Code Online (Sandbox Code Playgroud)

为什么两个哈希不一样?

php java hash sha1 equality

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

使用php解析器改进和简化css

我想以几种方式改进css语法,例如:

  • 定义变量
    link-color1 = #fff
  • 数学计算
    width:500-3-2 这看起来很愚蠢,但有变量:
    width: container - inner - 3px;
  • 风格延伸
    #foo{background:#ddd;color:#eee;} #bar {@extend: #foo;color:#fff;}
  • 跨浏览器功能
    -moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;取代
    border-radius:3px;

这些只是我的想法的例子,但图书馆可以是不同的

我正在寻找一个解析一个sytax类似于css的文件的php库,并生成一个有效的css文档.

这很重要,我不想将php sytax插入到我的css文件中,因为:

  • PHP看起来复杂而丑陋
    #foo {color:<?php echo $color1; ?>;}
  • Notepad ++完全混淆了.我也是

SASS是离线工作的非常好的解决方案,但我仍然在寻找PHP解决方案,因为:

  • 改进的css文件可供其他开发人员使用,以便他们可以修改和测试它.对于更大的社区,在服务器上使用的php-parser是一种更简单的方法.
  • PHP也可以通过基于文件修改日期和哈希码的简单修订系统来节省资源.

这是我写的一个例子: php解析器 at/css/index.php

用法:

@color1: #1a1a1a;
@color2: #444444;

div#container {background:@color1;}
div#inner {background:@color2;}
Run Code Online (Sandbox Code Playgroud)

HTML链接:

<link rel="stylesheet" type="text/css" href="/css/?main.css" />

这仅适用于颜色.我需要一个解析器来列出所选的选项.

css php parsing simplification

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

调用具有可变参数长度的函数

可能重复:
如何创建函数并传入可变长度参数列表?

我想调用console.log带有变量的参数列表

console.log("a","b")
console.log("a","b","c")
Run Code Online (Sandbox Code Playgroud)

但我从数组中获取参数:

var arr = ["a","b","c"];
Run Code Online (Sandbox Code Playgroud)

我想传递单个变量而不是完整的数组.所以console.log(arr)不是我想要的,console.log(arr[0],arr[1],arr[2])也是坏的,因为我不知道阵列长度ofc.

我怎样才能做到这一点?

console.log只是一个例子,我会在不同的问题中使用它


UPDATE

如何创建函数并传入可变长度参数列表? 不好.因为根据答案

function dump(a,b) {
  console.log("a:"+a,"b:"+b);
}

var asd = [1,2,3]

dump.call(this,asd)
Run Code Online (Sandbox Code Playgroud)

应该给出一个输出:a:1,b:2而不是a:[1,2,3] b:undefined


更新:

也许我的问题不够明确,抱歉.

console.log只是变量参数调用的一个例子

我想对不同的问题使用相同的方法

看看这个例子:

function Sum() {
  var temp = 0;
  for(var i=0;i<arguments.length;++i) {
     temp+= arguments[i];
  }
  return temp;
}
Run Code Online (Sandbox Code Playgroud)

我想用数组中的不同参数调用.

var test1 = [1,2,3];
var test2 = [4,5,6];

var a = Sum.call(this,test1) //this gives an …
Run Code Online (Sandbox Code Playgroud)

javascript

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

javascript - 字符串到真实对象

我有一个javascript对象 var flower_1; var flower_2;

我的问题是我是否有另一个变量,例如String var Name;

比如说: Name = "flower_1";

如何将Name变量更改为对象"flower_1"

javascript object-reference javascript-objects

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