Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在扩展类的arrayList中查找词频_Java - Fatal编程技术网

Java 如何在扩展类的arrayList中查找词频

Java 如何在扩展类的arrayList中查找词频,java,Java,这是一个餐厅类,可储存不同颜色的收据。我正在尝试使用Collections.Frequency 请注意使用集合。必须使用频率 public static void main(String[] args) { ArrayList<Resturant> list1 = new ArrayList<>(); list1.add(new Drive_Through(4, 20, 2)); list1.add(new Walk_in(5, 15, 10,

这是一个餐厅类,可储存不同颜色的收据。我正在尝试使用
Collections.Frequency

请注意使用
集合。必须使用频率

public static void main(String[] args) {
    ArrayList<Resturant> list1 = new ArrayList<>();
     list1.add(new Drive_Through(4, 20, 2));
     list1.add(new Walk_in(5, 15, 10, 10));
     list1.add(new Drive_Through(3, 5, 5));
     list1.add(new Walk_in(1, 3, 10,20));
     
     
    System.out.println("\n\n\n----Number of Green Recipet----\n"+Collections.frequency(list1, "Green"));
publicstaticvoidmain(字符串[]args){
ArrayList list1=新的ArrayList();
列表1.添加(通过(4,20,2)的新驱动器);
列表1.添加(新的Walk_in(5,15,10,10));
列表1.添加(通过(3,5,5)的新驱动器);
列表1.添加(新的Walk_in(1,3,10,20));
System.out.println(“\n\n\n----绿色Recipet的数量----\n”+Collections.frequency(列表1,“绿色”);
列表内容:

收据编号:1,日期/时间:20年8月27日,收据颜色:绿色,总项目:3,总税费:0.1,总付款:2.64,总折扣:0.6600000000000001

收据编号:3,日期/时间:20年8月27日,收据颜色:白色,总项目数:5,总税费:0.05,总付款:5.25

收据编号:4,日期/时间:20年8月27日,收据颜色:白色,总项目:20,总税费:0.02,总付款:20.4


收据编号:5,日期/时间:20年8月27日,收据颜色:绿色,总项目:15,总税费:0.1,总付款:14.85,总折扣:1.650000000000001]
作为
收款。频率检查给定对象与所有收款元素的相等性,这可以通过覆盖
等于
方法t来实现o仅比较一个属性(
颜色
在给定情况下):

类收据{
//属性、构造函数、getter、setter
@凌驾
公共布尔等于(对象o){
if(null==o){
返回false;
}
颜色otherColor=null;
if(o颜色实例){
其他颜色=(颜色)o;
}否则如果(o接收实例){
otherColor=((收据)o).getColor();
}
返回null!=this.color&&this.color.equals(otherColor);
}
@凌驾
公共int hashCode(){
返回this.color.hashCode;
}
}
//使用Collections.frequency
列表收据=prepareReceipts();
int greenCount=Collections.frequency(收据、颜色、绿色);
这只能用作所需情况下的“硬编码”解决方案


如果频率需要由另一个或多个属性计算,最好使用建议的方法实现一个装饰器/一组装饰器。

作为
集合。频率检查给定对象与集合中所有元素的相等性,这可以通过重写
equals
方法来实现仅比较一个属性(
颜色
在给定情况下):

类收据{
//属性、构造函数、getter、setter
@凌驾
公共布尔等于(对象o){
if(null==o){
返回false;
}
颜色otherColor=null;
if(o颜色实例){
其他颜色=(颜色)o;
}否则如果(o接收实例){
otherColor=((收据)o).getColor();
}
返回null!=this.color&&this.color.equals(otherColor);
}
@凌驾
公共int hashCode(){
返回this.color.hashCode;
}
}
//使用Collections.frequency
列表收据=prepareReceipts();
int greenCount=Collections.frequency(收据、颜色、绿色);
这只能用作所需情况下的“硬编码”解决方案


如果频率需要由另一个或多个属性计算,最好使用建议的方法实现一个装饰器/一组装饰器。

@Michael抱歉,我是新手,请让我编辑。@Michael检查编辑。“集合的使用。频率必须”这是不可能的。
Drive_Through
的实例不等于字符串
“Green
”。它们是不同的类,在定义上是不相等的。@Michael,你知道吗?什么能解决我的问题。取消必须使用
集合的不合逻辑的限制。频率
是一步1@Michael对不起,我是新来的,让我来编辑。@Michael检查编辑。“集合的使用。频率是必须的”这是不可能的。
Drive_Through
的一个实例不等于字符串
“Green
”。它们是不同的类,在定义上也不相等。@Michael知道吗?什么能解决我的问题。消除必须使用
集合的不合逻辑的约束。频率
是步骤1