如何为arraylist项指定权重值?JAVA
我有一个arraylist,我想给每个arraylist项目分配权重值,然后把它们的权重加起来,比如牛奶的重量是5糖的重量是3等等。 那么,返回这些权重之和的公式是什么呢如何为arraylist项指定权重值?JAVA,java,arraylist,Java,Arraylist,我有一个arraylist,我想给每个arraylist项目分配权重值,然后把它们的权重加起来,比如牛奶的重量是5糖的重量是3等等。 那么,返回这些权重之和的公式是什么呢 List<Ingredient> ing = new ArrayList<Ingredient>(); public class Ingredient { private String name; private String quantity; public Ingre
List<Ingredient> ing = new ArrayList<Ingredient>();
public class Ingredient {
private String name;
private String quantity;
public Ingredient(){
}
public Ingredient(String name,String quantity){
this.name=name;
this.quantity=quantity;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String quantity) {
this.quantity = quantity;
}
}
List ing=new ArrayList();
公共类成分{
私有字符串名称;
私有字符串数量;
公共成分(){
}
公共成分(字符串名称、字符串数量){
this.name=name;
这个。数量=数量;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
@凌驾
公共字符串toString(){
返回名称;
}
公共字符串getQuantity(){
退货数量;
}
公共无效设置数量(字符串数量){
这个。数量=数量;
}
}
因此,首先需要为配料类创建一个名为weight的字段。类似于你做的数量
private int weight;
public Ingredient(String name,String quantity,int weight){
this.name=name;
this.quantity=quantity;
this.weight = weight;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
我假设您将通过构造函数设置它。
要求和,只需在列表中循环:
int sum = 0;
for( Ingredient i : ing){
sum+=i.getWeight();
}
是否要创建成分的数组列表?如果是,那么最好在主类中创建一个单独的方法来处理总重量的计算。请参阅下面的代码:
public class Main {
private static int totalWeight(ArrayList<Ingredient> list) {
int sum = 0;
for (Ingredient i : list) {
sum += i.getWeight();
}
return sum;
}
public static void main(String[] args) {
ArrayList<Ingredient> list = new ArrayList<>();
Ingredient a = new Ingredient("Onion", 2, 1);
Ingredient b = new Ingredient("Potatoes", 3, 2);
list.add(a);
list.add(b);
int totalWeightOfAllProducts = totalWeight(list);
System.out.println(totalWeightOfAllProducts);
}
}
公共类主{
私有静态整型总权重(ArrayList列表){
整数和=0;
用于(成分一:列表){
sum+=i.getWeight();
}
回报金额;
}
公共静态void main(字符串[]args){
ArrayList=新建ArrayList();
成分a=新成分(“洋葱”,2,1);
成分b=新成分(“土豆”,3,2);
列表.添加(a);
列表.添加(b);
所有产品的总重量=总重量(列表);
System.out.println(所有产品的总重量);
}
}
别忘了在配料类中添加重量属性 这还不清楚,“公式”实际上只是总和。我不知道如何处理重量值。你能给我建议吗@OliverCharlesworth为什么不在
成分中添加一个重量
字段,然后在计算总重量时使用该字段?恐怕数量就是重量;)反正是为了糖。对于牛奶,你可以猜测它的体积,但通常糖是以重量来衡量的。这个问题很不清楚。呵呵,好吧,那你就不需要再修改这个类了。现在开始工作?谢谢limbo,但我想根据配料重量\搜索配方(配方rn:list){boolean recipeMatched=false;for(ShoppingList r:shop){for(int i=0;i=2){result.add(rn)
您能将此代码添加到问题中吗?我不确定我是否理解您想要的内容。我想根据成分重量搜索配方,哪个配方具有向用户建议的更高重量值(stackoverflow.com/questions/37575625/…)请转到此链接并查看我的配方搜索方法和配方类@limboi想要根据成分重量搜索配方,哪个配方具有向用户建议的更高重量值()请转到此链接并查看我的配方搜索方法和配方类