使用Java @Override注释的最佳实践是什么?为什么?
使用@Override注释标记每个重写方法似乎有点过分.是否有某些编程情况需要使用@Override和其他不应该使用的@Override?
我有两种ArrayList类型Answer(自制类).
我想比较两个列表,看看它们是否包含相同的内容,但是没有订单问题.
例:
//These should be equal.
ArrayList<String> listA = {"a", "b", "c"}
ArrayList<String> listB = {"b", "c", "a"}
Run Code Online (Sandbox Code Playgroud)
List.equals声明如果两个列表包含相同的大小,内容和元素顺序,则它们是相等的.我想要同样的事情,但没有订单问题.
有一个简单的方法吗?或者我是否需要执行嵌套for循环,并手动检查两个列表的每个索引?
注意:我无法将它们更改ArrayList为其他类型的列表,它们需要保留它.
我希望为我的地址簿应用程序实现一个排序功能.
我想要排序ArrayList<Contact> contactArray.Contact是一个包含四个字段的类:姓名,家庭电话号码,手机号码和地址.我想要排序name.
如何编写自定义排序功能来执行此操作?
我有一个对象列表,我需要在一个字段上排序,比如分数.在没有多想的情况下,我编写了一个实现Comparator的新类,它可以执行任务并且可以正常运行.
现在回过头来看,我想知道我是否应该让我的类实现Comparable,而不是创建一个实现Comparator的新类.分数是对象将被订购的唯一字段.
我做过什么可以接受的做法?
是正确的方法"首先让类实现Comparable(对于自然顺序),如果需要替代字段比较,那么创建一个实现Comparator的新类"?
如果上面的(2)为真,那么它是否意味着只有在具有类实现Comparable之后才应该实现Comparator?(假设我拥有原始课程).
我发现方法的java.lang.Integer实现compareTo如下:
public int compareTo(Integer anotherInteger) {
int thisVal = this.value;
int anotherVal = anotherInteger.value;
return (thisVal<anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1));
}
Run Code Online (Sandbox Code Playgroud)
问题是为什么使用比较而不是减法:
return thisVal - anotherVal;
Run Code Online (Sandbox Code Playgroud) 我有一个通用的Collection,我试图找出如何排序其中包含的项目.我尝试了一些东西,但我不能让它们中的任何一个工作.
我知道,Collections.sort(myArrayList)当它们是字符串时,可以按字母顺序对arraylist进行排序,但是当它们是更复杂的东西时,例如包含两个或更多变量的数据对象,包括a String.有没有办法对它们进行排序呢?
如果没有办法Collections那么我可以想象制作一个for循环或标准排序算法来查看每个对象的字符串变量并在数组中移动对象的索引.
但我想知道我是否忽视了一些Collections方法
我有一个对象列表,我想使用不同的属性进行排序.
@Override
public int compareTo(Object obj)
{
Field tab = (Field) obj;
int objx = Integer.parseInt(tab.getX());
// int objy = Integer.parseInt(tab.getY());
int classX = Integer.parseInt(this.X);
if (classX == objx)
return 0;
else if (classX > objx)
return 1;
else
return -1;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的:
Collections.sort(list1); // But using property1 to sort
Collections.sort(list1); // But using property2 to sort
Run Code Online (Sandbox Code Playgroud)
所以,在第一种情况下,我能够使用property1排序,但如何使用property2排序?我正在尝试使用不同的参数进行排序,但compareTo()只接受一个参数.
java ×10
sorting ×5
collections ×3
arraylist ×2
comparator ×2
algorithm ×1
alphabetical ×1
annotations ×1
comparable ×1
comparison ×1
generics ×1
integer ×1
object ×1
optimization ×1
overflow ×1
raw-types ×1