我到处都找不到一个类似于我的问题的答案,在Java中。我使用的是数组,而不是数组列表。
每次在我的咖啡店下新的订单时,咖啡店必须添加到客户已经访问过的商店数组中,但它应该只出现一次,即使他们访问过两次说‘星巴克’。
我有一个main文件,一个CoffeeShop类,和一个Customer类,这三个文件都在OOP中协同工作。
secondCup.newOrder(bruno, latte); //bruno is a Customer object, latte is a Drink object.
public void newOrder(Customer c, Drink d)
{
/*
double t = markUp*d.calculateCost();
DrinkOrder o = new DrinkOrder(c, d, t);
orders[pendingOrders++] = o;
currentProfit += t - d.calculateCost();
tracker[trackerSize++] = c;
totalOrders++;
*/ //above is irrelevant
c.addStore(this); //Here is where im adding the store that called the 'newOrder()' method
}
我认为“this”应该是调用“.newOrder()”的特定咖啡店,但大体上,当不同的商店调用newOrder()时,让我们假设:
starBucks.newOrder(bruno, latte);
当我打印访问过的商店数组时,我会得到2个secondCups,而不是同时得到一个secondCups和一个star bucks(我认为这是因为我如何将我的CoffeeShop发送到addStore()或者我如何将该商店添加到访问过的商店数组中)。
下面是我的方法,它应该检查存储区是否已经存在于数组中,如果不存在,则应该将其添加到数组中:
public void addStore(CoffeeShop shop)
{
size++;
for (int i=0; i<size; i++)
{
if (visited[i] == null) //if the first position is null (which it will be, add their first shop visited
{
visited[i] = shop;
break;
}
else if (visited[i].equals(shop)) //if if the index of the array equals the shop passed, then break the loop AKA dont add it to the array
{
break;
}
else //if none of the positions equal the shop, add it to the array
{
visited[i] = shop;
}
}
}
我尝试使用do while,如下所示,但得到的输出与上面的尝试完全相同:
for (int i=0; i<size; i++)
{
do
{
visited[i] = shop; //complete atleast one action, because the customer hasnt visited anystore yet so the first store should always be added
}
while (!visited[i].equals(shop)); //add to the array as long as they're not equal
以下是我的输出:
Total coffee orders: 6
Swift, Taylor has visited:
Starbucks
Starbucks
Starbucks
Mars, Bruno has visited:
Second Cup
Second Cup
Ada, Lovelace has visited:
Second Cup
应该是这样的(泰勒光顾星巴克两次,但应该只加一次):
Total coffee orders: 6
Swift, Taylor has visited:
Starbucks
Second Cup
Mars, Bruno has visited:
Starbucks
Second Cup
Ada, Lovelace has visited:
Second Cup
public void displayStoresVisited()
{
for (int i=0; i<size; i++)
System.out.println(visited[i].getName());
}
for (int i=0; i<size; i++)
{
if (visited[i] == null)
{
visited[i] = shop;
break;
}
else if (visited[i].equals(shop))
{
size -= 1;
}
else
{
continue;
}
}
Total coffee orders: 6
Swift, Taylor has visited:
Starbucks
Second Cup
Exception in thread "main" java.lang.NullPointerException
at Customer.displayStoresVisited(Customer.java:105)
at TestPhase4.main(TestPhase4.java:82)
int i=0;
while((i<size) && (!visited[i].equals(shop))){
++i;
}
if(i>=visited.length){
//increase the size of your array here.
}
if(i >= size){
visited[i] = shop;
size++;
}
/* get rid of this:
for (int i=0; i<size; i++)
{
if (visited[i] == null)
{
visited[i] = shop;
break;
}
else if (visited[i].equals(shop))
{
size -= 1;
}
else
{
continue;
}
}
*/
问题内容: 如何将对象添加到数组(使用javascript或jquery)?例如,此代码有什么问题? 我想使用此代码在function1数组中保存许多对象,并调用function2在数组中使用该对象。 如何将对象保存在数组中? 如何将对象放入数组并将其保存到变量? 问题答案: 使用Array.push()将任何东西放入数组。 有关数组的更多信息 一次添加多个项目 将项目添加到数组的开头 将一个数组
我有一个类来代表一个玩家的手牌。但是,我(在另一个类中)有一个数组列表,我想在其中表示一堆玩家手。问题是我不知道如何在多手牌的数组列表中将一张牌添加到手牌中。我有一个代表卡牌和一副牌的类,效果很好。我只是试图了解如何将对象添加到数组列表中的对象。谢谢!
本文向大家介绍在PHP中,如何将对象元素添加到数组?,包括了在PHP中,如何将对象元素添加到数组?的使用技巧和注意事项,需要的朋友参考一下 代码如下- 示例 输出结果 这将产生以下输出- 创建对象,然后将其推到数组的末尾(以前存在)。 另类
如果我有以下对象数组: 是否有一种方法可以在数组中循环,以检查特定用户名值是否已经存在,如果它什么也不做,但如果它不做,则使用所述用户名(和新ID)向数组中添加一个新对象? 谢谢!
建议我有这个嵌套数组的对象 所以我想用新的动态id将对象插入到服务数组中,我试过了 但我明白了 而我想得到这个 所以我怎么能这样做提前感谢帮助
问题内容: 我搜索了google,但找不到在Swift中将新元素追加到数组对象的方法。出现错误代码“呼叫中参数“名称”缺少参数”。遵循我的代码。 如果您知道任何解决方案,我将非常高兴。谢谢。 问题答案: 只需将元组分配给temp变量: 不知道为什么它不能那样工作-只是检查一个函数,像这样: 结果:该函数有效,而数组方法无效。 更新 :在操场上尝试了以下代码: 结果:当将变量传递给-使用文字元组时,