假设我创建了一个对象并将其添加到我的对象中ArrayList
.如果我然后使用完全相同的构造函数输入创建另一个对象,那么该contains()
方法是否会将两个对象评估为相同?假设构造函数对输入没有做任何有趣的事情,并且存储在两个对象中的变量是相同的.
ArrayList<Thing> basket = new ArrayList<Thing>();
Thing thing = new Thing(100);
basket.add(thing);
Thing another = new Thing(100);
basket.contains(another); // true or false?
Run Code Online (Sandbox Code Playgroud)
class Thing {
public int value;
public Thing (int x) {
value = x;
}
equals (Thing x) {
if (x.value == value) return true;
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这是class
应该如何实现contains()
回归true
?
人们普遍认为,为软件开发人员设定可衡量的目标是行不通的,因为过分关注目标会导致行为与组织目标相反(所谓的" 测量功能障碍 ").
但是,在我的公司,我们需要为所有员工设定目标,并受到人力资源部门的鼓励,使其成为SMART.在过去,我的一级经理(团队领导)和我尝试了很多方法:
这些都不是理想的.如果您遇到类似的情况,即尽管有证据表明其有效性,软件开发人员必须创建有意义的,可衡量的目标,哪种方法最适合您?
我发现相关问题并没有完全解决同一问题:
更新(2009年11月18日):我的问题有10个upvotes,评分最高的答案只有4个upvotes(包括我的一个).我认为这告诉我们一些事情:或许Joel和其他人都是正确的,而且stackoverflow的综合智慧无法为开发人员提出任何令人信服的,可衡量的目标,这些目标无法在不对其真实(不可测量)价值产生负面影响的情况下进行游戏.工作.谢谢你的尝试!
在C中调用时,可以假设函数参数的评估顺序吗?根据以下程序,我执行时似乎没有特定的顺序.
#include <stdio.h>
int main()
{
int a[] = {1, 2, 3};
int * pa;
pa = &a[0];
printf("a[0] = %d\ta[1] = %d\ta[2] = %d\n",*(pa), *(pa++),*(++pa));
/* Result: a[0] = 3 a[1] = 2 a[2] = 2 */
pa = &a[0];
printf("a[0] = %d\ta[1] = %d\ta[2] = %d\n",*(pa++),*(pa),*(++pa));
/* Result: a[0] = 2 a[1] = 2 a[2] = 2 */
pa = &a[0];
printf("a[0] = %d\ta[1] = %d\ta[2] = %d\n",*(pa++),*(++pa), *(pa));
/* a[0] = 2 a[1] = 2 a[2] = …
Run Code Online (Sandbox Code Playgroud) 我们来看一个对象的简单例子Cat
.我想确定"not null" cat
是橙色还是灰色.
if(cat != null && cat.getColor() == "orange" || cat.getColor() == "grey") {
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
我相信AND先来,然后是OR.我有点模糊,所以这是我的问题:
有人可以引导我完成这个陈述,所以我确定我会得到什么?
另外,如果我添加括号会发生什么; 这会改变运营的顺序吗?
我的操作顺序会因语言而异吗?
在浏览某个项目的代码时,我遇到了以下声明:
++x %= 10;
Run Code Online (Sandbox Code Playgroud)
这个陈述是用C++很好地定义的,还是属于同一类别
a[i] = i++
Run Code Online (Sandbox Code Playgroud)
?
int i = 3;
int j = (i)++;
Run Code Online (Sandbox Code Playgroud)
VS
int i = 3;
int j = i ++;
Run Code Online (Sandbox Code Playgroud)
虽然上面两个例子都存储了3个__CODE__
,但上述两个案例的评估方式是否存在差异?
既然__CODE__
是a __CODE__
,那么__CODE__
第一种情况是否会被评估为表达式,这相当于递增rvalue?或者它是未定义的行为,只是恰好存储3 __CODE__
?
或者我是否过度思考它只是一个简单的后缀?
为什么以下两个都返回零?当然第二个是对第一个的否定?我正在使用SQL Server 2008.
DECLARE
@a VARCHAR(10) = NULL ,
@b VARCHAR(10) = 'a'
SELECT
CASE WHEN ( ( @a IS NULL
AND @b IS NULL
)
OR @a = @b
) THEN 1
ELSE 0
END , -- Returns 0
CASE WHEN NOT ( ( @a IS NULL
AND @b IS NULL
)
OR @a = @b
) THEN 1
ELSE 0
END -- Also returns 0
Run Code Online (Sandbox Code Playgroud) 我发现了一些关于使用Top-N方法评估准确性的期刊论文(机器学习分类问题).数据显示,在相同的训练,测试条件下,前1精度= 42.5%,前5精度= 72.5%.我想知道如何计算前1和前5的百分比?
有人能给我看一些例子和步骤来计算吗?
谢谢
我即将开始一个应该有一个相当大的数据库的新项目.
表的数量不会很大(<15),大多数数据(99%)将包含在一个大表中,这几乎只是插入/读取(没有更新).
该表中的估计数据量将以每天500,000条记录的速度增长,我们应该保留至少1年的时间来进行各种报告.
需要(只读)复制数据库作为备份/故障转移,并且可能用于在高峰时间卸载报告.
我没有那些大型数据库的第一手经验,所以我问的是那些DB在这种情况下最好的选择.我知道Oracle是安全的赌注,但如果有人有类似设置的Postgresql或Mysql的经验,我会更感兴趣.
如果我得到一个bool
变量并将其第二位设置为1,则变量同时评估为true和false。使用带有-g
选项(gcc-v6.3.0/Linux/RHEL6.0-2016-x86_64/bin/g++ -g main.cpp -o mytest_d
)的gcc6.3编译以下代码,然后运行可执行文件。您得到以下内容。
T如何同时等于真和假?
value bits
----- ----
T: 1 0001
after bit change
T: 3 0011
T is true
T is false
Run Code Online (Sandbox Code Playgroud)
当您使用不同的语言(例如fortran)调用函数时,可能会发生这种情况,其中对和错的定义与C ++不同。对于fortran,如果任何位都不为0,则该值为true;如果所有位为零,则该值为false。
#include <iostream>
#include <bitset>
using namespace std;
void set_bits_to_1(void* val){
char *x = static_cast<char *>(val);
for (int i = 0; i<2; i++ ){
*x |= (1UL << i);
}
}
int main(int argc,char *argv[])
{
bool T = 3;
cout <<" value bits " <<endl;
cout <<" …
Run Code Online (Sandbox Code Playgroud) evaluation ×10
boolean ×2
c ×2
c++ ×2
java ×2
abi ×1
algorithm ×1
arraylist ×1
database ×1
expression ×1
increment ×1
logic ×1
null ×1
object ×1
parameters ×1
sql-server ×1
t-sql ×1
top-n ×1