小编giu*_*lio的帖子

没有实现接口的所有方法

我尝试在eclipse上复制下面的代码.我收到一个错误,告诉我必须实现所有继承的方法(因为Comparator是一个接口).

该类型new Comparator(){}必须实现继承的抽象方法Comparator.reversed().

有许多这些方法,我想要覆盖的唯一方法是比较.我是否必须实现所有其他方法,或者有没有办法指定我不需要实现它们?我知道由于接口的契约性质,我将不得不这样做,但如果我只需要更改一个方法怎么办?

static Map sortByValue(Map map) {
     List list = new LinkedList(map.entrySet());
     Collections.sort(list, new Comparator() {
          public int compare(Object o1, Object o2) {
               return ((Comparable) ((Map.Entry) (o1)).getValue())
              .compareTo(((Map.Entry) (o2)).getValue());
          }
     });

    Map result = new LinkedHashMap();
    for (Iterator it = list.iterator(); it.hasNext();) {
        Map.Entry entry = (Map.Entry)it.next();
        result.put(entry.getKey(), entry.getValue());
    }
    return result;
} 
Run Code Online (Sandbox Code Playgroud)

编辑 通过在eclipse luna中将合规性级别更改为java8来解决.谢谢!

java eclipse comparator java-8

11
推荐指数
2
解决办法
5649
查看次数

将int转换为具有固定位数的二进制

java中最简单的方法是将整数的二进制表示形式作为具有固定位数的二进制数(例如,如果我想用5位转换3,那么结果将是00011).在matlab中,我可以指定位数作为参数.

java

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

在java中的特定位置拆分字符串

假设您有一个表单的字符串"word1 word2 word3 word4".什么是分裂它使得简单的方法split[0] = "word1 word2"split[1] = "word3 word4"

编辑:澄清

我想拆分,而不是拆分[0] ="word1",我有前两个单词(我同意它不清楚)和所有其他单词在split [1],即在第二个空格

java text

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

关于cpp的简单求和程序

我试图得到一个c ++程序总和用户输入的元素:

#include <iostream>

int main(){
        int sum = 0, value = 0;
        // read until end-of-file, calculating a running total of all values read
        while (std::cin >> value){
                sum += value;
        }
        std::cout << "Sum is: " << sum << std::endl;
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在c ++ primer上读到了这个例子,但是当我编译这个程序并运行它时,提示会一直等待输入.为什么不输出任何东西?

c++ cin eof c++11

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

使用c3可视化图表

我试图重现一些代码使用c3生成图表.但是,此脚本不会呈现任何内容.为什么?(href中列出的文件位于同一文件夹中)

<!DOCTYPE html>
<html>
<head>
  <!-- Load c3.css -->
  <link href="c3.css" rel="stylesheet" type="text/css">

  <!-- Load d3.js and c3.js -->
  <script src="d3.v3.min.js" charset="utf-8"></script>
  <script src="c3.min.js"></script>

  <meta charset="UTF-8">
  <title>title </title>
</head>
<body>
  <div id="chart"></div>
  <script>
  var chart = c3.generate({
    bindto: '#chart',
    data: {
      columns: [
        ['data1', 30, 200, 100, 400, 150, 250],
        ['data2', 50, 20, 10, 40, 15, 25]
      ]
    }
});
</script>
</body>
Run Code Online (Sandbox Code Playgroud)

html visualization data-visualization c3

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

获取 Youtube 频道的视频列表作为 rss feed

如何使用 youtube api 形成请求以从频道获取视频作为 rss feed?

我读了这个问题,其中给出了新 api (V3) 的链接,但我在那里找不到它。我尝试使用 api v2 中已弃用的语法:

https://gdata.youtube.com/feeds/users/UCqAEtEr0A0Eo2IVcuWBfB9g/uploads
Run Code Online (Sandbox Code Playgroud)

但它只是有时有效。

我也尝试过:

https://www.googleapis.com/youtube/v3/search?key={your_key_here}&channelId={channel_id_here}&part=snippet,id&order=date&maxResults=20
Run Code Online (Sandbox Code Playgroud)

我在其中输入频道 ID 和搜索键,但收到“错误请求”错误。

youtube rss youtube-api

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

hashSet中的重复值

我试图计算总和为n的1,5,10和25的组合数.鉴于我不想重复(例如1 + 5 = 6和5 + 1 = 6).我正在使用hashSet.我实现了一个名为的类ResultSet,它在解决方案中保存了1,5,10和25的数量,并且我覆盖了该equals方法.但是,由于某种原因,我的解决方案hashSet不断返回重复值.为什么?

import java.util.HashSet;

public class Solution {

  public static void main(String[] args) {
    int N = 6;
    int combinationsSolution = new Combine(N).getSolution();
    System.out.println("N= " + N + " Number of solutions= " + combinationsSolution);

  }
}

class Combine {

  private int solution;

  private int n;

  private HashSet<ResultSet> cacheUnordered = new HashSet<ResultSet>();

  public Combine(int N) {
    this.n = N;
    this.solution = solve(n);
  }

  public int …
Run Code Online (Sandbox Code Playgroud)

java equals hashcode hashset

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

是否可以在main中调用非静态方法?

我试图将两个由链表表示的数字相加.我有静态说明符和内部类的问题.我定义了一个内部类SumWrapper来跟踪进位.我在sum方法中使用了这个包装器.我首先将它声明为静态方法,但我在Eclipse上遇到以下错误:

不能访问类型为Solution的封闭实例.必须使用类型为Solution的封闭实例限定分配(egxnew A(),其中x是Exo25V2的实例).

然后我删除了静态说明符,但它无法从main调用我的方法...

有解决方法吗?

public class Solution {

  public class SumWrapper{
    public int carry = 0;
    public Node node;

    public SumWrapper(int c, Node n){
      carry = c;
      node = n;
    }
  } // close sumWrapper class

  public SumWrapper sum(Node node1, Node node2){
    if (node1 == null && node2 == null){
      SumWrapper result = new SumWrapper(0, null);
      return result;
    }

    int current = node1.data + node2.data + sum(node1.next, node2.next).carry;
    int carry = (current >= 10) ? 1 : …
Run Code Online (Sandbox Code Playgroud)

java

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