我将Item对象存储在ArrayList中。 Item类有一个名为field1
的浮点字段。我想按itemsList
的递减顺序从field1
检索Item对象。
List<Item> itemsList = new ArrayList<Item>();
itemsList.add(new Item(...));
这就是我的尝试:
public class Item implements Comparable {
//...
public float compareTo(Item it)
{
return(similarity - it.similarity);
}
}
List<Item> sortedItems = Collections.sort(itemsList);
问题是compareTo
应该返回int
,而我float
。那么,我应该采用哪种方法来排序float
值?
答案 0 :(得分:1)
方法签名应为:
Add-Type -Language CSharp @"
public class myObject{
public String myString;
public hashtable myHash;
}
而不是返回public int compareTo(Item it)
。目前您尚未实施float
界面。
最简单的实施方式是:
Comparable
答案 1 :(得分:0)
<?php
$pattern = '/<div class="viewBuyButt".*\sonclick="(.*?)">/';
preg_match($pattern, $html, $viewAllLink);
var_dump($viewAllLink);// but not getting output
的确切返回值无关紧要。它可以低于0,正好为0或大于0.例如,对于低于0的每个差异,返回-1;对于大于0的每个差异,返回1,最后为0,返回0。
由于campareTo()
已经是可比较的,因此很容易:Float
答案 2 :(得分:0)
compareTo假设只返回3个可能的值。 1,0,-1。 1表示对象大于被比较的对象,0表示它们相等,-1表示对象小于它所比较的对象。所以你的compareTo方法应该非常简单。
public int compareTo(Item it)
{
if(this.field1 < it.getField1()) {
return -1;
}
else if( this.field1 > it.getField1()) {
return 1;
}
else {
return 0;
}
}