Java Как получить сумму всех значений каждого перечисления - PullRequest
1 голос
/ 24 декабря 2011

Я пытаюсь понять, как можно получить все значения для каждого перечисления и сложить все вместе в одну переменную мой код.

enum Junk {

Wrapper(0),
SilverCoins(150), 
Dresser(250),
Sofa(250),
ChippedBat(0),
BrokenMicrowave(0),
SilverWare(35),
Newspapers(0),
Book(20),
Clothes(60),
Plates(40),
Cups(25),
DiningTable(200),
Chair(30),
BoxOfPaper(10),
BucketofPaint(10),
Watch(30);

}

Я хотел бы знать, как я могу сложить все значения каждого перечисления и сложить их вместе.

Ответы [ 5 ]

1 голос
/ 24 декабря 2011

Ниже приведен ваш полный код, который вы можете ожидать.

package enumtest;

enum Junk
{
    Wrapper(0),
    SilverCoins(150),
    Dresser(250),
    Sofa(250),
    ChippedBat(0),
    BrokenMicrowave(0),
    SilverWare(35),
    Newspapers(0),
    Book(20),
    Clothes(60),
    Plates(40),
    Cups(25),
    DiningTable(200),
    Chair(30),
    BoxOfPaper(10),
    BucketofPaint(10),
    Watch(30);

    private int value;

    private Junk(int value)
    {
        this.value=value;
    }

    public int getValue()
    {
        return(value);
    }
}

final public class Main
{
    public static void main(String...args)
    {
        int sum=0;

        for(Junk o:Junk.values())
        {
            sum+=o.getValue();
        }

        System.out.println("sum  = "+sum);
    }
}

Будет отображаться sum = 1110 на консоли, если вы попытаетесь.

1 голос
/ 24 декабря 2011
public class Brand{
    private static int sum;

    public static int getSum() {
        return sum;
    }

    public enum Junk  
    {
        Wrapper(0),
        SilverCoins(150), 
        Dresser(250),
        Sofa(250),
        ChippedBat(0),
        BrokenMicrowave(0),
        SilverWare(35),
        Newspapers(0),
        Book(20),
        Clothes(60),
        Plates(40),
        Cups(25),
        DiningTable(200),
        Chair(30),
        BoxOfPaper(10),
        BucketofPaint(10),
        Watch(30);
        private int value;

        private Junk (int value){
            this.value = value;
            sum = sum + value;
        }

        public int getValue(){
            return value;
        }
    }
 }

в основном:

System.out.println(Brand.Junk .BoxOfPaper);
System.out.println("sum:"+Brand.getSum());  

ВЫХОД:

BoxOfPaper
sum:1110
1 голос
/ 24 декабря 2011
enum Junk {

    Wrapper(0),
    SilverCoins(150), 
    Dresser(250),
    Sofa(250),
    ChippedBat(0),
    BrokenMicrowave(0),
    SilverWare(35),
    Newspapers(0),
    Book(20),
    Clothes(60),
    Plates(40),
    Cups(25),
    DiningTable(200),
    Chair(30),
    BoxOfPaper(10),
    BucketofPaint(10),
    Watch(30);

    private int value;

    private Junk(int value){
        this.value = value;
    }

    public int getValue(){
        return value;
    }

}

получить значение enum:

int sofaValue = Junk.Sofa.getValue();

добавление кода:

int junkSum = 0;

for(Junk junk : junk.values()){
    junkSum += junk.getValue();
}
0 голосов
/ 24 декабря 2011
int total=0;

for (Junk j: Junk.values()) {  
 //retrieve each of the values and add it to total
}  
0 голосов
/ 24 декабря 2011

Сначала вам нужен метод доступа для доступа к целочисленному значению.Скажи, .getInt().Как только вы это сделаете, сделайте что-то вроде этого:

int sum = 0;

for (final Junk junk: Junk.values())
    sum += junk.getInt();

// Now sum contains what you want

Этот код не проверяет переполнение, но вы поняли идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...