У меня есть класс "ItemCount", в котором объявлена переменная count, а начальное значение равно 0. После выполнения функции map будет подсчитано значение карты, и я пытаюсь присвоить подсчитанное значение map переменной count.Но эта переменная Count всегда установлена на 0. Я пытался использовать SetCount, но все еще оставался на 0. Пожалуйста, сообщите
public class ItemCount extends Thread
{
String itemName;
List<String> itemList = new ArrayList<>();
Integer count =0;
Map<String,Integer> map = new HashMap<String, Integer>();
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public ItemCount(String itemName,List<String> itemList){
this.itemName = itemName;
this.itemList=itemList;
}
public ItemCount()
{
}
public void run(){
for(String item : this.itemList)
{
if(map.containsKey(item))
{
int newcount = map.get(item);
map.put(item, newcount+1);
}
else
{
map.put(item, 1);
}
}
for(Map.Entry<String,Integer> entry : map.entrySet())
{
this.count = entry.getValue();
}
}
}
Мне нужно напечатать это значение счетчика в главном классе *
for(ItemCount i:threadList){
System.out.format("%-15s %-15s\n",i.itemName,i.count);
}
Input & Output:
Enter the number of purchases
4
Enter the items purchased
red
green
red
black
Number of items to search
1
red
Item Name Count
red 1 (**** Count has to be 2)
*