如果我java.lang.Comparable为一个类实现,我仍然必须覆盖该equals()方法吗?或者也将Comparable工作equals?
如果答案是否定的,那么如果出现一些差异怎么办?假设我在equals()方法中将两个对象称为相等的方式不同于我将两个相同类的对象称为相等的compareTo()方式Comparable.
而且,如果我实施Comparable,我还必须覆盖equals()吗?
如果我在使用for-each循环迭代它时修改Collection,它会给出ConcurrentModificationException.有没有解决方法?
奇怪的是JScrollPane没有方法addAdjustmentListener().然而,adjustListener据说与滚动条一起使用.无论何时JScrollPane以任何一种方式滚动,我都希望发生一些事情.怎么实现这样的事情?
我有一个面板,其中一些2D物体正在移动.我已根据需要覆盖了paintComponent().现在我希望能够放大并缩小该区域.放大时,将显示滚动条,通过滚动条可以查看整个字段.在放大和缩小时,2D对象应相应地增大或减小.哪个Swing组件或更确切的组件组合将有助于实现这一目标?
没有静态成员可以使用类型参数,但是可以使用泛型类型参数调用静态成员吗?例如:-
abstract class Agent<A>{
void callAgent();
Agent(){
A.add();
}
}
Run Code Online (Sandbox Code Playgroud)
这里add()是一个静态方法.
关于类似主题有一些C#问题和答案,但我不太清楚如何在Java中进行.
我注意到,如果稍后更改对象属性值,TreeSet不会按可变对象保持排序顺序.例如,
public class Wrap {
static TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>(){
@Override
public int compare(Student o1, Student o2) {
return o1.age - o2.age;
}
});
public static void main(String []args){
Student s = new Student(10);
ts.add(s);
ts.add(new Student(50));
ts.add(new Student(30));
ts.add(new Student(15));
System.out.println(ts);
s.age = 24; //Here I change the age of a student in the TreeSet
System.out.println(ts);
}
}
class Student{
int age;
Student(int age){
this.age = age;
}
@Override
public String toString() {
return "Student [age=" + …Run Code Online (Sandbox Code Playgroud) 情况:我有一个自定义对象TreeSet,我也使用了自定义比较器.我已经创建了一个在这个TreeSet上使用的迭代器.
TreeSet<Custom> ts=new TreeSet<Custom>();
Iterator<Custom> itr=ts.iterator();
while(itr.hasNext()){
Custom c=itr.next();
//Code to add a new element to the TreeSet ts
}
Run Code Online (Sandbox Code Playgroud)
问题:我想知道如果我在while循环中向TreeSet添加一个新元素,那么新元素会立即被排序.换句话说,如果我在while循环中添加一个新元素并且它小于我当前在c中保存的元素,那么在下一次迭代中我将获得与上一次迭代中相同的元素吗?(因为在排序之后,新添加的元素将占据当前元素之前的某个位置.
是否使用instanceof关键字反对的本质object oriented programming?我的意思是这是一个糟糕的编程习惯吗?我在某处读到使用instanceof关键字意味着设计可能不那么好.有更好的解决方法吗?
我有一套100到200点(x,y).我必须检查哪些落在其他人的特定距离内.特定距离对于整个程序是固定的,例如50.假设点1落在点5,7,25,90,96,105等的范围内.类似地,点2落在23,45等范围内...... 存储用于通过x,y坐标定位的对象
这里建议使用QuadTree,但它可用于获取边界矩形内的所有点.但是如何在一个边界内得到所有点?有一种方法可以在最大距离内返回最接近纬度/经度的点,但是如何获得距离内的所有点? http://openmap.bbn.com/doc/api/com/bbn/openmap/util/quadtree/QuadTree.html#QuadTree(float,love,float,float,int)
一种方法可能是在我得到它时从树中删除每个点,然后再次查询最近的点,直到我得到null.这是唯一的方法吗?
java ×10
collections ×2
swing ×2
treeset ×2
algorithm ×1
comparable ×1
equals ×1
generics ×1
instanceof ×1
iterator ×1
jscrollpane ×1
panel ×1
quadtree ×1
static ×1