powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как связать enum c индексом
11 сообщений из 11, страница 1 из 1
Как связать enum c индексом
    #40039702
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть enum

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
public enum ShipType {
    OneDeck,
    TwoDecks,
    ThreeDecks,
    FourDecks
}


и есть код в main

import static day0.ShipType.FourDecks;
import static day0.ShipType.ThreeDecks;

public class Task1 {
    private static String Cd_in;


    public static void main(String[] args) {
        Field field = new Field();
        int cnt_pnt = 0; // X-еx палубный корабль
        int j;

        for (int cnt_shps = 1; cnt_shps < 2; cnt_shps++) {
            cnt_pnt = 5 - cnt_shps; //сколько кораблей
                       ....................................................
                Ship sh1 = new Ship(FourDecks, coordinates);
               // Ship sh2 = new Ship(ThreeDecks, coordinates);

}



Как связать если cnt_shps=1 то ShipType будет FourDecks
если cnt_shps=2 то ShipType будет ThreeDecks
?

можно ли как нибудь перевести num в List и по индексу тип получать ?
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40039708
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал вот так

public enum ShipType {
OneDeck (0),
TwoDecks (1),
ThreeDecks (2),
FourDecks (3);

public int value;

ShipType(int value) {this.value = value; }

public int getValue() {
return value;
}
}

Ship sh1 = new Ship(ShipType.values(cnt_shps), coordinates);

Но чет пока никак (
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40039711
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

Нашел решение через HashMap

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public enum ShipType {
    OneDeck (1),
    TwoDecks (2),
    ThreeDecks (3),
    FourDecks (4);
    

    public  int value;
    private static Map map = new HashMap<>();

    ShipType(int value) {this.value = value; }
    
    
    public static ShipType valueOf(int shipType){
        return (ShipType) map.get(shipType);
    }

    public int getValue() {
        return value;
    }
}
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040091
rsl_tr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@Getter
@AllArgsConstructor
public enum ShipType {

    OneDeck(1),
    TwoDecks(2),
    ThreeDecks(3),
    FourDecks(4);
    
    public  int value;
    private static Map map = new HashMap<>();
    
    static {
        map = Stream.of(values()).collect(Collectors.toMap(ShipType::value, identity()));
    }

    public static ShipType valueOfByValue(String value) {
        return map.get(value);
    }
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040170
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

можно конечно
Код: java
1.
List<Integer>=Arrays.stream(ShipType.values).map(Enum::ordinal).collect(Collectors.toList());




У вас стримы головного мозга))) Лечитесь ))

x17.mstu:
1) Через массив. ShipType.values()[индекс]
2) Через список Arrays.asList(ShipType.values()).get(индекс)
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040176
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch
пропущено...


У вас стримы головного мозга))) Лечитесь ))

x17.mstu:
1) Через массив. ShipType.values()[индекс]
2) Через список Arrays.asList(ShipType.values()).get(индекс)

ты клоун так и не понял что автор просил) вас надо палками бить- чтобы ТЗ читали)


Но вы его тоже не читали - автор же просит искать не по ordinal)
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040545
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch
пропущено...


Но вы его тоже не читали - автор же просит искать не по ordinal)

Он именно это и просит ,просто он не в курсе что ординал есть)

Он хочет размер корабля в ячейках связать с enum...
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040550
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public enum ShipType {
    OneDeck,
    TwoDecks,
    ThreeDecks,
    FourDecks;

   public static ShipType ofSize(final int size) {
       assert size > 0 && size < 5
       // Порядок элементов в enum менять нельзя.
       return values()[size - 1];
   }
}
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040568
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch
x17.mstu,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public enum ShipType {
    OneDeck,
    TwoDecks,
    ThreeDecks,
    FourDecks;

   public static ShipType ofSize(final int size) {
       assert size > 0 && size < 5
       // Порядок элементов в enum менять нельзя.
       return values()[size - 1];
   }
}


господи ну ты и упоротый честно

22270862
чем это оличается от ординал то лол) и сосбтвенно ты тоже самое и сделал ,только зачем то единицу отнял - что неправильно архитектурно - нужно менять индекс на стороне коробля ну и вообще в джава все с нуля начинается _)


Джун, тебе рано в архитектуру, успокойся
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040593
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну давай, объясни что не так без использования ругани. Техническими терминами.
Пока твои возражения выглядят как обычно -- смешно.
...
Рейтинг: 0 / 0
Как связать enum c индексом
    #40040625
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzzz не умеет разговаривать.... Техническими терминами))))
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как связать enum c индексом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]