相关疑难解决方法(0)

在JAVA中设置不正确

我只是想从列表中删除重复的元素.为此,我写了一个POJO类Student:

class Student{

private String roll;
private String name;

public Student(String roll, String name) {
    this.roll = roll;
    this.name = name;
}
@Override
public boolean equals(Object obj) {
    Student st = (Student) obj;
    return st.getRoll().equals(roll);
}

public String getRoll() {
    return roll;
}
public void setRoll(String roll) {
    this.roll = roll;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
@Override
public String toString() {
    return roll ;
}

} …
Run Code Online (Sandbox Code Playgroud)

java collections set hashcode hashset

0
推荐指数
1
解决办法
76
查看次数

仅在两个实例之间比较一个变量

我正在学习Java,他们给了我一个我非常努力的练习。我将为您提供完整的练习(从我的母语翻译而来),而不是对其进行解释,因此您可以理解。我真的不明白我该怎么做。我不假装完整的代码(即使我会很欣赏,因为制作精良的代码可以帮助我改善并更好地理解应该如何做),但至少我想知道我应该从哪里开始寻找对于解决方案,因为现在我撞墙了,很痛。

我的第一个想法是重写.equals方法,但这似乎并不正确。我以为我可以创建一个子类,但在示例中,它们对主实例和3个派生实例都使用相同的类,所以不是。

练习:

创建一个Animal类,其特征在于:

  • 腿数
  • 类型(鸟,猫等)
  • 平均重量

如果两只动物的腿数相同,属于同一类型并且具有相同的平均体重,则认为它们是相等的。该类必须实现三种方法,这些方法允许转换动物,以便仅比较一个特征(每个特征一个方法)。


范例:

    Animal cat = new Animal (4, "Cat", 5);
    Animal dog = new Animal (4, "Dog", 5);

    Animal catNumberOfLegs = cat.compareNumberOfLegs();
    Animal catType = cat.compareType ();
    Animal catWeigth = cat.compareWeigth();

    Animal dogNumberOfLegs = dog.compareNumberOfLegs ();
    Animal dogType = dog.compareType ();
    Animal dogWeigth = dog.compareWeigth ();

    System.out.println (cat.equals (dog)); // false
    System.out.println (catNumberOfLegs.equals (dogNumberOfLegs)); // true
    System.out.println (catType.equals (dogType)); // false
    System.out.println (catWeigth.equals (dogWeigth)); // true

------------
Run Code Online (Sandbox Code Playgroud)
  • 变量的值必须保持不变。

  • Java是一种面向对象的语言:请记住!

编辑:我正在编辑此原因,我在注释中看到一些混乱,不知道这是造成练习写得不好还是导致翻译的原因。

关键是,我有两个Animal类实例。一个叫猫,另一个叫狗。我有这3个单独的方法来实现,当在实例上使用时,返回给我一个新实例,该实例在使用.equals()时仅考虑其中一个变量。让我们采用方法“ compareNumberOfLegs();”。举个例子。动物dogTWO = …

java oop

0
推荐指数
1
解决办法
63
查看次数

将随机 UUID 分配为地图键的问题

我正在制作一个调度(调度员?)程序。当我设法创建“addReport”方法时,我在显示所有报告(遍历地图)时遇到了问题。我认为每次我尝试添加新元素时,它们都会被替换,因为标识符 (UUID) 是相同的。你怎么看,或者可能是不同的东西?

public class Dispatching {
    private String identificator;
    private Map<String, Report> reportMap;

    public Dispatching() {
        this.identificator = UUID.randomUUID().toString();
        this.reportMap = new HashMap<>();
    }

    void addReport(String message, ReportType type) {
        reportMap.put(identificator, new Report(type, message, LocalTime.now()));
    }

    void showReports() {
        for (Map.Entry element : reportMap.entrySet()) {
            System.out.println("uuid: " + element.getKey().toString()
                    + " " + element.getValue().toString());
        }
    }

}

public class Report {
    ReportType reportType;
    String reportMessage;
    LocalTime reportTime;


    public Report(ReportType reportType, String reportMessage, LocalTime reportTime) {
        this.reportType = reportType;
        this.reportMessage …
Run Code Online (Sandbox Code Playgroud)

java collections uuid hashmap

0
推荐指数
1
解决办法
217
查看次数

如何在Java中将Map中的key * value相乘?

我有这门课:

\n
class Product {\n    public double price;\n\n    public Product(double price) {\n        this.price = price;\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

还有一张地图:

\n
Map<Product, Integer> products = new HashMap<>();\n
Run Code Online (Sandbox Code Playgroud)\n

其中包含添加的几种产品,如下所示:

\n
products.put(new Product(2.99), 2);\nproducts.put(new Product(1.99), 4);\n
Run Code Online (Sandbox Code Playgroud)\n

我想使用流计算所有乘积的总和乘以值?我试过:

\n
double total = products.entrySet().stream().mapToDouble((k, v) -> k.getKey().price * v.getValue()).sum();\n
Run Code Online (Sandbox Code Playgroud)\n

但它无法编译,我得到 \xe2\x80\x9c无法解析方法getValue()\xe2\x80\x9d。

\n

我预计:

\n
(2.99 * 2) + (1.99 * 4) = 5.98 + 7.96 = 13.94\n
Run Code Online (Sandbox Code Playgroud)\n

java java-8 java-stream

0
推荐指数
1
解决办法
895
查看次数

标签 统计

java ×4

collections ×2

hashcode ×1

hashmap ×1

hashset ×1

java-8 ×1

java-stream ×1

oop ×1

set ×1

uuid ×1