java基础题大家帮一帮🥶🥶

建立公司基类 AbstractCompany,成员方法自定。建立产品基类 Product,成 员方法自定。建立 AbstractCompany 的派生类 Company,应包括 Product 数 组,用于存放产品,能输出公司名称、地址、产品信息。建立 Company 对象, 华为(Huawei),大疆(Da-jiang),海康威视(Hikvision),比亚迪(BYD)。 建立 Product 对象,包括手机(Phone),无人机(UAV),摄像头(Camera), 汽车(Car),将 Product 对象赋值给 Company 对象。编写程序,建立公司列 表 ArrayList,输出公司信息及公司中产品数组的信息,并对公司列表按照名 称进行排序,输出排序后的结果。将 Company 和 Product 作为一个整体输出。


import lombok.Getter;
import lombok.Setter;


public class AbstractCompany {

    @Setter
    @Getter
    private String companyName;

    @Setter
    @Getter
    private String companyLoc;

}


import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;


public class Company extends AbstractCompany {

    public Company(String name,String loc){
        setCompanyName(name);
        setCompanyLoc(loc);
    }

    @Setter
    @Getter
    private List<Product> productList = new ArrayList<>();

    @Override
    public String toString() {
        return String.format("名称:%s,地址:%s,产品包括:%s", getCompanyName(),getCompanyLoc(),getProductList());
    }
}



import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@AllArgsConstructor
public class Product {

    @Getter
    @Setter
    private String productName;



    @Override
    public String toString() {
        return getProductName();
    }
}



import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        Company huawei = new Company("Huawei","Huawei总部");
        Company daJiang = new Company("Da-jiang","Da-jiang总部");
        Company hikvision = new Company("Hikvision","Hikvision总部");
        Company byd = new Company("BYD","BYD总部");

        Product phone = new Product("手机");
        Product uav = new Product("无人机");
        Product camera = new Product("摄像头");
        Product car = new Product("汽车");
        huawei.getProductList().add(phone);
        daJiang.getProductList().add(uav);
        hikvision.getProductList().add(camera);
        byd.getProductList().add(car);


        List<Company> companyList = new ArrayList<Company>();
        companyList.add(huawei);
        companyList.add(daJiang);
        companyList.add(hikvision);
        companyList.add(byd);


        companyList.forEach(company -> System.out.println(company));

        System.out.println("=============");

        companyList.stream().sorted(Comparator.comparing(Company::getCompanyName)).forEach(company -> System.out.println(company));


    }
}

输出结果:
名称:Huawei,地址:Huawei总部,产品包括:[手机]
名称:Da-jiang,地址:Da-jiang总部,产品包括:[无人机]
名称:Hikvision,地址:Hikvision总部,产品包括:[摄像头]
名称:BYD,地址:BYD总部,产品包括:[汽车]
=============
名称:BYD,地址:BYD总部,产品包括:[汽车]
名称:Da-jiang,地址:Da-jiang总部,产品包括:[无人机]
名称:Hikvision,地址:Hikvision总部,产品包括:[摄像头]
名称:Huawei,地址:Huawei总部,产品包括:[手机]

如果有用,请采纳下 谢谢!

参考如下:
公司基类 AbstractCompany

public abstract class AbstractCompany {
    private String name;
    private String address;

    public AbstractCompany(String name, String address) {
        this.name = name;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

产品基类 Product

public class Product {
    private String name;

    public Product(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return name;
    }
}

AbstractCompany 的派生类 Company

import java.util.ArrayList;
import java.util.List;

public class Company extends AbstractCompany {
    private List<Product> products = new ArrayList<>();
    public Company(String name, String address) {
        super(name, address);
    }

    public List<Product> getProducts() {
        return products;
    }

    public void setProducts(List<Product> products) {
        this.products = products;
    }

    @Override
    public String toString() {
        return "公司名称:" + getName() + "\n公司地址:" + getAddress() + "\n公司产品:" + products;
    }
}

测试类

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        Company huawei = new Company("Huawei", "华为公司的地址");
        Company dajiang = new Company("Da-jiang", "大疆公司的地址");
        Company hikvision = new Company("Hikvision", "海康威视公司的地址");
        Company byd = new Company("BYD", "比亚迪公司的地址");

        Product phone = new Product("手机");
        Product uav = new Product("无人机");
        Product camera = new Product("摄像头");
        Product car = new Product("汽车");
        huawei.getProducts().add(phone);
        dajiang.getProducts().add(uav);
        hikvision.getProducts().add(camera);
        byd.getProducts().add(car);

        List<Company> companyList = new ArrayList<>();
        companyList.add(huawei);
        companyList.add(dajiang);
        companyList.add(hikvision);
        companyList.add(byd);

        companyList.forEach(company -> System.out.println(company));
        System.out.println("==========================");
        // 排序 按名称升序
        companyList.sort(Comparator.comparing(Company::getName));
        // 输出公司和产品
        companyList.forEach(company -> System.out.println(company));
    }
}

AbstractCompany.java

package com.it.txm.demo.learn;


public class AbstractCompany {

    // 公司名
    public String companyName;

    // 公司地址
    public String address;

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "AbstractCompany{" +
                "companyName='" + companyName + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
Company.java
package com.it.txm.demo.learn;

import java.util.Arrays;


public class Company extends AbstractCompany {


    // 产品信息
    private Product[] productArray;

    public Product[] getProductArray() {
        return productArray;
    }

    public void setProductArray(Product[] productArray) {
        this.productArray = productArray;
    }

    @Override
    public String toString() {
        return "Company{" +
                "productArray=" + Arrays.toString(productArray) +
                ", companyName='" + companyName + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
Product.java
package com.it.txm.demo.learn;


public class Product {

    // 产品名
    private String productName;

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    @Override
    public String toString() {
        return "Product{" +
                "productName='" + productName + '\'' +
                '}';
    }
}
Test.java
package com.it.txm.demo.learn;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;


public class Test {
    public static void main(String[] args) {

        // 创建公司信息
        Company huawei = new Company();
        huawei.setCompanyName("华为");
        huawei.setAddress("深圳");

        Company daJiang = new Company();
        daJiang.setCompanyName("大疆");
        daJiang.setAddress("新疆");

        Company hikvision = new Company();
        hikvision.setCompanyName("海康威视");
        hikvision.setAddress("杭州");

        Company BYD = new Company();
        BYD.setCompanyName("比亚迪");
        BYD.setAddress("北京");

        // 创建产品信息
        Product phone = new Product();
        phone.setProductName("手机");

        Product UAV = new Product();
        UAV.setProductName("无人机");

        Product camera = new Product();
        camera.setProductName("摄像头");

        Product car = new Product();
        car.setProductName("汽车");

        // 将产品赋值为给公司
        Product[] product1 = new Product[1];
        product1[0]=phone;
        huawei.setProductArray(product1);

        Product[] product2 = new Product[1];
        product2[0]=UAV;
        daJiang.setProductArray(product2);

        Product[] product3 = new Product[1];
        product3[0]=camera;
        hikvision.setProductArray(product3);

        Product[] product4 = new Product[1];
        product4[0]=car;
        BYD.setProductArray(product4);

        // 创建公司列表
        ArrayList<Company> companyArrayList = new ArrayList<>();
        companyArrayList.add(huawei);
        companyArrayList.add(daJiang);
        companyArrayList.add(hikvision);
        companyArrayList.add(BYD);

        for (int i = 0; i < companyArrayList.size(); i++) {
            System.out.println("输出公司信息及公司中产品数组的信息:"+companyArrayList.get(i));
        }

        System.out.println("====================================华丽的分割线=================================================");

        // 按照公司名称进行排序
        Collections.sort(companyArrayList, new Comparator<Company>() {
            @Override
            public int compare(Company o1, Company o2) {
                return o1.getCompanyName().compareTo(o2.getCompanyName());
            }
        });

        for (int i = 0; i < companyArrayList.size(); i++) {
            System.out.println("按照公司名称进行排序后输出公司信息的信息:"+companyArrayList.get(i));
        }



    }
}

注意以上四个类复制使用的时候更换一下包名即可(package com.it.txm.demo.learn替换成自己的项目包路径)。

如果对感觉有帮助,欢迎采纳!

题目有了,问题呢?


.stream().sorted(Comparator.comparing(Company::getName).reversed()).collect(Collectors.toList());  倒序    .reversed()取消正序