小编gvl*_*sov的帖子

为什么我不能使用equals继承?

当我读一本Java书时,作者已经说过,在设计一个类时,使用equals()继承通常是不安全的.例如:

public final class Date {
    public boolean equals(Object o) {
         // some code here
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的类中,我们应该放final,所以其他类不能从这继承.而我的问题是,为什么在允许另一个类从此继承时它是不安全的?

java oop equals

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

对于仅包含函数/扩展方法的文件,是否存在建议的命名约定?

在Java中,它很简单:类型的文件名是类型加.java后缀的名称.

在Kotlin中,您可以编写不包含类的文件.是否有任何惯例来命名它们?

您还将如何命名这些功能的单元测试类?

naming kotlin

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

IntelliJ的Maven过滤支持如何工作?

我注意到,当您配置Maven项目以使用属性过滤时,属性过滤似乎也可以在非maven IntelliJ"make"期间工作.这意味着Jetty/Tomcat/GWT/Glassfish的IntelliJ运行配置仍将遵循您的maven资源过滤.

所以如果我把它添加到我的pom.xml:

 <build>
     <resources>
         <resource>
             <directory>src/main/resources</directory>
             <filtering>true</filtering>
             <includes>
                 <include>**/*.properties</include>
                 <include>**/persistence.xml</include>
             </includes>
         </resource> ....
Run Code Online (Sandbox Code Playgroud)

在任何intellij运行配置启动之前,它应该过滤我的属性和peristence.xml文件中的任何属性.这对于交换JDBC引用或文件系统参数非常有用.

我遇到的唯一问题是,即使我更改pom.xml以获得其他目录的第二个条目(即:src/integrationtest/resources),IntelliJ似乎也只是尊重src/main/resources中的过滤.

这一切似乎都是"自动化的".那么它如何工作以及我可以在哪里(如果有的话)配置它?

intellij-idea maven

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

如何确定向量是否在两个其他向量之间?

我正在寻找一种快速有效的方法来确定矢量B是否在矢量A和矢量C的小角度之间.通常我会使用垂直点积来确定每条线B的哪一侧所在,但在这种情况下不是如此简单,因为以下内容:

  • 没有一个向量可以被假定为标准化,并且将它们标准化是我希望避免的额外步骤.
  • 关于哪一侧是最小角度,我没有明确的概念,因此很难说该线的哪一侧是好的.
  • A和B有可能是共线的,或者恰好相隔180度,在这种情况下我想要返回false.
  • 当我在3D环境中工作时,我很容易将其简化为2D,如果这样可以使事情变得更容易,更重要的是更快.此测试将用于需要尽可能快地运行的算法.

如果有一些简单而有效的方法来确定我的垂直向量应该指向哪个方向,我可以使用两个点产品进行测试.

到目前为止,我一直在考虑的另一种方法是使用矩阵.理论上从我对矩阵变换的理解,我应该能够使用A和C作为基础向量.然后将B乘以矩阵I应该能够通过X和Y是否都为正来测试哪个象限B所在.如果我可以使用这种方法,它可能是最好的,因为一个矩阵乘法应该比两个点积更快,我不应该担心哪一侧有最小角度.

问题来自我的测试我不能简单地使用A和C作为基础并正常乘以它并获得正确的行为.我真的不确定我在这里做错了什么.我已经碰过了几次"矢量空间"这个术语,其中尽可能接近似乎是一个非常类似于矩阵变换的概念,而不需要正交基或正交基.它和矩阵一样吗?如果没有,可能会有更好的方法,我将如何使用它?

只是为了更直观地解释我在说什么:

粗略的例子

@Aki Suihkonen我似乎无法让它发挥作用.编写了一个模拟案例,我可以查看,看看我是否无法解决问题

对于这种情况使用

Ax 2.9579773 Ay 3.315979

Cx 2.5879822 Cy 5.1630249

对于围绕四个象限旋转的BI,矢量将空间划分为.

我得到的迹象: - 第一季度-- - 第二季度+- - 第三季度+- - 第四季度--

假设我在环境中旋转的方向与图像相同,我相当确定.

象限

math vector matrix

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

大O时间复杂度中的指数分母(分数指数)来自何处?

在算法描述中,我有时遇到时间复杂性,如:O(n 29/20 + m 7/3).我看到+权力中的位置和分子来自:+连续循环,而分子意味着嵌套循环.例如,这个(无用的)算法具有O(n 2 + m)时间复杂度:

public int compute(int n, int m) {
  int answer = 0;
  for (int i=0; i<n; i++) {
    for (int j=0; j<n; j++) {
      answer += i-j;
    }
  }
  for (int i=0; i<m; i++) {
      answer -= i;
  }
  return answer;
}
Run Code Online (Sandbox Code Playgroud)

但我不明白什么可以引入分母(第一个例子中的20和3).

algorithm big-o time-complexity

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

如何通过selenium webdriver禁用Skype扩展

每当我启动Firefox浏览器时,它都会在启用Skype的情况下打开.如何通过Selenium和Java禁用它?

java selenium

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

如何将当前年份插入IntelliJ IDEA版权模板?

我正在尝试在IntelliJ IDEA版权设置中为MIT许可证制作Apache Velocity模板.我希望它打印2015-${current_year}年份.以下是我试图在设置→版权→版权配置文件→MIT→版权文本中添加的内容:

#set ($current_year = $dateTool.getCurrentDate('yyyy'))
Copyright (c)  2015-${current_year}, My Name

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the …
Run Code Online (Sandbox Code Playgroud)

velocity intellij-idea

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

Java:不使用Arrays.sort()对整数数组进行排序

这是我们Java类中的一个练习中的指令.在其他任何事情之前,我想说我'做我的功课'而且我不只是懒得让Stack Overflow上的某个人为我回答这个问题.这个特定项目是我所有其他练习中的问题,因为我一直在努力为此找到"完美的算法".

编写JAVA程序,输入10个整数值,并按升序或降序显示.注意:不允许使用Arrays.sort().

这是我提出的代码,它有效,但它有一个明显的缺陷.如果我输入两次或更多相同的值,例如:

5,5,5,4,6,7,3,2,8,10

输入的三个5中只有一个将被计算并包含在输出中.我得到的输出(升序)是:

2 3 4 5 0 0 6 7 8 10.

import java.util.Scanner;

public class Exer3AscDesc
{
    public static void main(String args[])
    {
        Scanner scan = new Scanner(System.in);
        int tenNums[]=new int[10], orderedNums[]=new int[10];
        int greater;
        String choice;

        //get input
        System.out.println("Enter 10 integers : ");
        for (int i=0;i<tenNums.length;i++)
        {
            System.out.print(i+1+"=> ");
            tenNums[i] = scan.nextInt();
        }
        System.out.println();

        //imperfect number ordering algorithm
        for(int indexL=0;indexL<tenNums.length;indexL++)
        {
            greater=0;
            for(int indexR=0;indexR<tenNums.length;indexR++)
            {
                if(tenNums[indexL]>tenNums[indexR])
                {
                    greater++;
                }
            }
            orderedNums[greater]=tenNums[indexL];
        }

        //ask if …
Run Code Online (Sandbox Code Playgroud)

java arrays sorting int integer

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

评估R data.table中的表达式

我有以下内容data.table:

> dt = data.table(expr = c("a + b", "a - b", "a * b", "a / b"), a = c(1,2,3,4), b = c(5,6,7,8))
> dt
    expr a b
1: a + b 1 5
2: a - b 2 6
3: a * b 3 7
4: a / b 4 8
Run Code Online (Sandbox Code Playgroud)

我的目标是获得以下内容data.table:

> dt
    expr a b ans
1: a + b 1 5   6
2: a - b 2 6  -4
3: a …
Run Code Online (Sandbox Code Playgroud)

eval r data.table

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

是否有一个函数式编程习惯用于"从列表的开头选择并减少直到结果满足谓词"?

假设我有一个数字列表,我需要知道我必须从它的开头选择多少元素才能获得至少所需的总和.

算法很简单:我从列表的开头选择数字,直到所有选中的数字的总和超过一定数量.

我可以用这样的命令式写作:

fun pickEnough(list: List<Double>, enough: Double): List<Double>? {
    var soFar = 0.0
    var index = 0
    for (index in 0..list.size) {
        soFar += list[index]
        if (soFar > enough) {
            return list.subList(0, index)
        }
    }
    return null
}
Run Code Online (Sandbox Code Playgroud)

一个低效但更通用的解决方案是生成所有可能的子列表并选择第一个减少结果足够好的子列表:

fun <T> pickEnough(list: List<T>, reducer: (T, T) -> T, enough: (T) -> Boolean): List<T>? =
list.indices
    .map { index -> list.sublist(0, index) }
    .first { sublist -> enough(sublist.reduce(reducer)) }

pickEnough(listOf(5,8,0,0,8), { a, b -> a + b}, { it > …
Run Code Online (Sandbox Code Playgroud)

language-agnostic functional-programming idioms

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