Как присвоить значение карты локальной переменной класса - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть класс "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)

*

...