我读到了使用Comparator对ArrayLists进行排序,但在所有人们使用的例子中compareTo,根据一些研究,这是一个字符串的方法.
我想通过它们的一个属性对自定义对象的ArrayList进行排序:Date对象(getStartDay()).通常我会比较它们item1.getStartDate().before(item2.getStartDate())所以我想知道我是否可以这样写:
public class CustomComparator {
public boolean compare(Object object1, Object object2) {
return object1.getStartDate().before(object2.getStartDate());
}
}
public class RandomName {
...
Collections.sort(Database.arrayList, new CustomComparator);
...
}
Run Code Online (Sandbox Code Playgroud) 我有一个类电影我有一个开始日期,持续时间和停止日期.开始和停止日期是日期对象(私有日期startDate ...)(这是一个分配,所以我不能改变它)现在我想通过将持续时间(以分钟为单位)添加到startDate来自动计算stopDate.
根据我的知识,使用Date的时间操作函数被弃用,因此不好的做法,但另一方面,我看不到将Date对象转换为日历对象的方法,以便操纵时间并将其重新转换为Date对象.有办法吗?如果有什么是最好的做法
<div style="position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px;">
<div style="
border: 2px solid black;
margin: 0 auto;
text-align: center;
padding: 3px;">
Hello<br />Hola
</div>
<div style="
border: 2px solid black;
margin: 0 auto;
text-align: center;
padding: 3px;">
Another Sentence
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我有一个问题:内部div的边界覆盖整个页面的宽度,但我希望它们只构建其中的内容.如果我使用:display: inline边框分别构成每一行并重叠,这样就行不通 - 有人可以帮忙吗?
PS样式在原始文档中没有这样声明,而是在样式表中声明
正如标题所说,我想知道ArrayList的contains()方法的时间复杂度是多少.
我是否可以将一个字符串或另一条信息发送到另一个.php文件而不使用它[因此不是通过GET而是通过POST符合我所知道的]而不使用表单?
最近我决定看看Java,所以我还是很新的,也是OO编程的方法,所以我想在学习更多东西之前先做一些事情,(我想它永远不会很快从良好实践开始) ).
我现在正在编写一个2D游戏,但我认为我的问题适用于任何非平凡的项目.为了简单起见,我将从我的游戏中提供示例.
我有不同种类的僵尸,但它们都有相同的属性(x,y,健康,攻击等)所以我写了一个界面 Zombie,我实现了WalkingZombie,RunningZombie TeleportingZombie等.这是最好的事情吗?我最好用抽象课吗?还是超级?(我不打算部分实现函数 - 因此我选择了一个接口而不是一个抽象类)
我有一个类描述主角(Survivor),因为它非常大,我想用不同的函数编写一个接口,这样我就可以轻松地看到并分享它的结构.这是好习惯吗?还是只是浪费空间和时间?
我希望这个问题不会被评为主观,因为我认为有经验的程序员不会对这种话题产生不同意见,因为接口/超类/抽象类的使用遵循逻辑规则,因此不仅仅是个人选择.
我正在寻找最方便的方法(double d).到目前为止,我提出了两种方法:
1. d*d
2. Math.pow(d, 2)
Run Code Online (Sandbox Code Playgroud)
为了测试性能,我设置了三个测试用例,在每个测试用例中,我使用相同的种子为三种情况生成随机数,然后只计算循环100 000 000次的平方数.
在第一个测试案例中,使用random.nextDouble()第二种情况下使用random.nextDouble()*Double.MAX_VALUE和使用第三种 情况生成数字random.nextDouble()*Double.MIN_VALUE.
几次运行的结果(近似结果,总是有一些变化,使用java 1.8运行,在Mac OSX Mavericks上为java 1.6编译)
Approach | Case 1 | Case 2 | Case 3
---------•--------•--------•-------
1 | ~2.16s | ~2.16s | ~2.16s
2 | ~9s | ~30s | ~60s
Run Code Online (Sandbox Code Playgroud)
结论似乎是方法1更快,但Math.pow似乎表现得有些奇怪.
所以我有两个问题:
1为什么Math.pow这么慢,为什么它会对数字造成严重影响> 1甚至更糟< -1?
2有没有办法提高性能超过我建议的方法1?我在考虑这样的事情:
long l = Double.doubleToRawLongBits(d);
long sign = (l & (1 << 63));
Double.longBitsToDouble((l<<1)&sign);
Run Code Online (Sandbox Code Playgroud)
但这是a)错误,和b)与方法1的速度相同.
我知道很多脚本处理IP禁令,IP范围禁令等.我试图制作一种方法,尽可能阻止用户.我提出了:
谢谢你的想法.
我想知道什么是更好的风格/更高效:
x = linspace(-1, 1, 100);
Run Code Online (Sandbox Code Playgroud)
要么
x = -1:0.01:1;
Run Code Online (Sandbox Code Playgroud) 可能重复:
内存中的Java/C#方法表示
我想知道我是否在java中有一个对象,它是如何存储实例方法的?对象是否有指向它的实例方法的指针?
例:
public class MyObject {
private int x;
private int y;
[..]
}
Run Code Online (Sandbox Code Playgroud)
如果我计划MyObject在内存中保留很多(例如,对象的一棵大树),如果除了x的getter和yi定义计算总和的实例方法,它会在内存方面产生显着差异吗?
我正在尝试解决问题,我应该添加更多实例方法或使用getter和setter在另一个类中进行计算.