gpt4 book ai didi

java - 实现我自己的锻炼助手应用程序 - Collection 注意事项

转载 作者:行者123 更新时间:2023-11-29 18:36:44 27 4
gpt4 key购买 nike

我正在尝试实现我自己的锻炼应用程序以便在健身房使用。

我怀疑哪个系列最适合我。

SO,使用名为“Exercise”的集合的类它有 3 个变量,如下所述:

public class Exercise {

private String description;
private Map<Double, Integer> WeightsNRep;
private char category;

public Exercise(String description, char category){
this.description=description;
WeightsNRep = new HashMap<>();
this.category = category;
}

如您所见,它包含三个变量,其中一个是描述,有趣的是 WeightsNRep - 它需要保存每个集合的数据 - 这意味着它将保存 WeightOFSet1,NumberOFRepInSet1, WeightOFSet2,NumberOFRepInSet2 , ... 直到运动结束。

我对集合有几个要求:

  1. 我可以选择做多少组 - 可以是 4 组、5 组或 3 组,具体取决于练习。
  2. 其次,我希望它是可读的,因为我想随后将数据存储在具有此模板的文件中:

    “描述:” + 描述 +\t + WeightOFSet1 +\t + NumberOFRepInSet1 +\t + ..... "

    直到最后的代表 - 我的意思是我想超越 toString 功能,但我仍然希望集合的内部变量可以很好地访问。

例如 - 当我选择 HashMap 时,我明白如果我将键设置为我的权重那将是不正确的,因为 :

  1. 如果我在一组中有两次相同的权重,它不会保存第二个 - 因为 Hashmap 只为一个键保存一组!
  2. 我无法按顺序保存它,因为我只能使用接受键的函数 get 来获取它的值。

最佳答案

您应该创建一个名为 RepSet 的类:

class RepSet {
double weight;
int reps;

// Constructor (and any getters that may be required) omitted for brevity.
}

并将这些列表存储在 WeightsNRep 字段中。

private List<RepSet> WeightsNRep = new ArrayList<>();

通过使用列表,您可以为相同的权重设置多个 RepSet

至于对字符串的要求:您只需手动构建即可。例如:

"Description : " + Description
+ WeightsNRep.stream().map(r -> r.weight + "\t" + r.reps).collect(joining("\t"))

关于java - 实现我自己的锻炼助手应用程序 - Collection 注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54035542/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com