我必须写一个程序
>
为ShopItem使用一个比较器(BarcodeParator),它允许基于它们的barCodeNumber对ShopItem对象进行比较(假设:没有两个项目永远不会有相同的条形码)。
public class ShopItem implements Comparable<ShopItem> {
private int barCodeNumber;
private String itemName;
private int price;
private int quantityInStock;
public ShopItem(int barCodeNumber, String itemName, int price, int quantityInStock){
this.barCodeNumber= barCodeNumber;
this.itemName= itemName;
this.price= price;
this.quantityInStock= quantityInStock;
}
public int getBarCodeNumber() {
return barCodeNumber;
}
public void setBarCodeNumber(int barCodeNumber) {
this.barCodeNumber = barCodeNumber;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getQuantityInStock() {
return quantityInStock;
}
public void setQuantityInStock(int quantityInStock) {
this.quantityInStock = quantityInStock;
}
@Override
public String toString(){
return "Item: " + itemName+ ":"+ "Bar Code Reader: "+barCodeNumber;
}
}
import java.util.*;
public class ShopItem_Order {
final static Comparator<ShopItem> BarCodeComparator= new Comparator<ShopItem>(){
public int compare(ShopItem A, ShopItem B){
if(new Integer(A.getBarCodeNumber()).compareTo(new Integer(B.getBarCodeNumber()))<0)
return -1;
else if(new Integer(A.getBarCodeNumber()).compareTo(new Integer(B.getBarCodeNumber()))>0)
return 1;
else
return 0;
}
};
public static void main(String args[]){
SortedSet<ShopItem> item= new TreeSet<ShopItem>(new ShopItem_Comparator());
ShopItem a= new ShopItem(42842, "Iced Green Tea", 75, 20);
ShopItem b= new ShopItem(42278, "Sugar Free Lindt Choc", 175, 20);
ShopItem c= new ShopItem(42277, "Red Velvet Cake", 125, 15);
ShopItem d= new ShopItem(42857, "Financier Cake", 150, 11);
ShopItem e= new ShopItem(48423, "Tacos", 125, 10);
item.add(a);
item.add(b);
item.add(c);
item.add(d);
item.add(e);
for(ShopItem si: item){
System.out.println(si.toString());
}
}
}
由于条形码是唯一的标准,所以可以使用它进行哈希代码计算。例如。返回新的整数(barCodeNumber).HashCode()。请注意,您还需要实现equals()方法,该方法也将基于BarCodeNumber。
所以我正在使用一些预先存在的比较器,它们比较两个元组中的某些值,如果第一个大于第二个,则返回true,否则返回false。这是其中之一的代码: 现在,我有一个字典,里面有许多上面比较的类型的元组条目。我想以相反的顺序对它们进行排序,但我真的不知道如何完成。我在想这样的事情: 但是我不知道向比较器传递什么,因为每个比较器都有两个参数(subInfo1、subInfo2)。我不能更改比较器函数。
我有一个用类填充的树集。我想让这些按其继承排序,否则,只按其名称的字母顺序(以创建一个恒定的顺序)。但是由于某种原因,如果添加的类的顺序不正确,就会导致类的顺序不正确。 这是我的比较器: 下面是一个测试失败的例子: 排序集的实际值: 我的期望更像是: 我在调试时确实注意到,并非每个项目都相互比较。
问题内容: 父级是子级继承的类。由GrandChild继承。每个类都包含子类的列表(即,父类包含子类的列表,子类包含大子级的列表)。每个类包含50个属性(attrib1-atrib50)。getChildList()返回类型为Child的对象的arrayList getGrandChildList()返回类型为GrandChild的对象的arrayList 令resultSet为父级列表 现在,我
我一直在做拼字游戏作业。我需要从列表中读取单词,然后读取每个字符并赋值,最终为每个单词分配一个总分。已经完成了!唷。现在我需要使用比较器将单词从最高分到最低分进行排序。读了很多,还是很迷茫。我知道我可以使用接口,但也有使用lambda表达式的比较器,这是我想去的方向。我只是不知道该怎么做。我需要比较每个单词的sumValue,然后按降序打印单词。 我创建了 2 个循环来读取单词 (i),然后是字符
我正试图根据员工的加入日期对他们的列表进行排序。下面是我的员工类。 下面是我的比较器类:
问题内容: 说,我们有以下二维数组: 应该如何声明Java 类以使用降序按数组的第一个元素对数组进行排序?供参考的功能是: 问题答案: […]应该如何声明Java Comparator类以按其降序将数组的第一个元素排序 […] 这是使用Java 8的完整示例: 输出: 对于Java 7,你可以执行以下操作: 如果你不幸无法在Java 6或更早版本上运行,请执行以下操作: