如何声明指向Map <string,set <string =“”>&gt;?的指针

时间:2015-10-01 21:14:32

标签: java

我想知道如何在Java中创建一个空集映射。

现在,我正在尝试按照以下方式执行此操作,但遇到了静态错误。

var multiply = function(x, y) {

  //add y x times
  // function log10(val) {
  //     return Math.log(val) / Math.LN10;
  // }
  // return Math.round(Math.pow(10, (log10(x) + log10(y))))
  if(x === 1){
    return y;
  }
  if(y === 1){
    return x;
  }
  if (x === 0 || y === 0) {
    return 0;
  }
  //if one is negative
  if(x < 0 ^ y <0){
    return -multiply(Math.abs(x), Math.abs(y))
  }
  //if both are negative
  if(x<0 && y<0){
    return multiply(Math.abs(x), Math.abs(y));
  }

  //subroutine:
  var addY = function (x, y){
    var total= 0;
    for(var i = 0; i<x; i++){
        total += y;
    }
    return total;
  }

  return addY(x, y);
};

console.log(multiply(55, -2)) 
// ---> returns -110 woohoo!

执行此操作的正确语法是什么?

3 个答案:

答案 0 :(得分:1)

创建新实例的语法是new ClassName<generic spec>([arguments])。即使您不想将任何参数传递给构造函数,您仍然需要使用括号。你的代码有一个拼写错误 - 参数列表应该在之后,而不是在它们里面。

Map<String, Set<String>> mapOfSets = new HashMap<String, Set<String>>();

请注意,从Java 7开始,您可以使用空的尖括号("the diamond"),并允许Java推断泛型类型参数,而不必在减速和新实例创建中重复它们:

Map<String, Set<String>> mapOfSets = new HashMap<>();

答案 1 :(得分:0)

你错过了括号。 Map<String, Set<String>> MapOfSets = new HashMap<String, Set<String>>();

答案 2 :(得分:-1)

Map<String, Set<String>> MapOfSets = new HashMap<String, Set<String>>();