Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 如何使用childrens Overrided equals()方法检查父ArrayList中子对象的相等性_Java_Oop_Arraylist - Fatal编程技术网

Java 如何使用childrens Overrided equals()方法检查父ArrayList中子对象的相等性

Java 如何使用childrens Overrided equals()方法检查父ArrayList中子对象的相等性,java,oop,arraylist,Java,Oop,Arraylist,嗨,如果你能帮我弄清楚如何检查这里的平等性,我将不胜感激 所以我有一个父类:person,和子类:man,woman,这两个子类都是平等的,如果man对象每年赚的钱相同,而woman对象的年龄相同,那么这两个子类都是平等的。在父类person中:我有一个arraylist,每个arraylist有5个man和woman对象,其中一些对象将被视为在每个子类equals(Object o)方法中定义的相等对象。我如何筛选arraylist以打印哪些是相等的 import java.util.Arra

嗨,如果你能帮我弄清楚如何检查这里的平等性,我将不胜感激

所以我有一个父类:person,和子类:man,woman,这两个子类都是平等的,如果man对象每年赚的钱相同,而woman对象的年龄相同,那么这两个子类都是平等的。在父类person中:我有一个arraylist,每个arraylist有5个man和woman对象,其中一些对象将被视为在每个子类equals(Object o)方法中定义的相等对象。我如何筛选arraylist以打印哪些是相等的

import java.util.ArrayList;

public class Person
{
    private ArrayList<Person> people;

    public Person()
    {
        people = new ArrayList<>();

        people.add(new Man("John Smith", 51000));
        people.add(new Man("Who Ever", 0));
        people.add(new Man("Brent Groff", 51000));
        people.add(new Man("Adam Nothing", 29000));
        people.add(new Man("Bob Dob", 90000));

        people.add(new Woman("Jane Smith", 45));
        people.add(new Woman("Holly Way", 60));
        people.add(new Woman("Anna Sheroka", 28));
        people.add(new Woman("Fara Daniels", 28));
        people.add(new Woman("Minie Do", 19));
    }

    public void displayAllEqualPeople()
    {
        for (int i  = 0; i < people.size() ; i++)
        {
            for (int j = 1 ; j < people.size() ; j++)
            {
                if (people.get(i) instanceof Man)
                {

                }
            }
        }
    }
}
import java.util.ArrayList;
公共阶层人士
{
私人ArrayList人;
公众人士()
{
people=newarraylist();
新增(新人(“约翰·史密斯”,51000));
添加(newman(“Who Ever”,0));
新增(新人(“布伦特·格罗夫”,51000));
新增(新人(“亚当一无所获”,29000));
新增(新人(“鲍勃·多布”,90000));
新增(新女性(“简·史密斯”,45岁));
添加(新女性(“Holly Way”,60));
新增(新女性(“安娜·谢洛卡”,28岁));
新增(新女性(“法拉·丹尼尔斯”,28));
添加(新女性(“Minie Do”,19));
}
public void displayallqualpeople()
{
for(inti=0;i
这将按工资/年龄对人员进行分组

Map<String, Person> men = people.stream()
    .filter(p -> p instanceof Man)
    .map(p -> (Man) p)
    .collect(groupingBy(Man::getSalary));

Map<String, Person> women = people.stream()
    .filter(p -> p instanceof Woman)
    .map(p -> (Woman) p)
    .collect(groupingBy(Woman::getAge));

Map men=people.stream()
.过滤器(p->p Man实例)
.地图(p->(男)p)
.collect(groupingBy(Man::getSalary));
Map women=people.stream()
.过滤器(p->p女性实例)
.地图(p->(女性)p)
.collect(groupingBy(Woman::getAge));

这将按工资/年龄对人员进行分组

Map<String, Person> men = people.stream()
    .filter(p -> p instanceof Man)
    .map(p -> (Man) p)
    .collect(groupingBy(Man::getSalary));

Map<String, Person> women = people.stream()
    .filter(p -> p instanceof Woman)
    .map(p -> (Woman) p)
    .collect(groupingBy(Woman::getAge));

Map men=people.stream()
.过滤器(p->p Man实例)
.地图(p->(男)p)
.collect(groupingBy(Man::getSalary));
Map women=people.stream()
.过滤器(p->p女性实例)
.地图(p->(女性)p)
.collect(groupingBy(Woman::getAge));