'\ r' = возврат каретки и '\ n' = перевод строки.
На самом деле, при использовании их в разных операционных системах существуют разные способы поведения. В Unix это '\ n', но в Windows это '\ r' '\ n'.
Вы хотите использовать Map
Map<String, Integer> m = new HashMap<String, Integer>();
m.put("Stop me", 11);
Integer i = m.get("Stop me"); // i == 11
Обратите внимание, что в последней строке я мог бы сказать:
int i = m.get("Stop me");
Это сокращение от (с автоматической распаковкой Java):
int i = m.get("Stop me").intValue()
Если на карте нет значения для данного ключа, get
возвращает null
, и это выражение вызывает исключение NullPointerException
. Следовательно, всегда хорошая идея использовать упакованный тип Integer
в этом случае
get
возвращает null
, и это выражение вызывает исключение NullPointerException
. Следовательно, всегда хорошая идея использовать упакованный тип Integer
в этом случае get
возвращает null
, и это выражение вызывает исключение NullPointerException
. Следовательно, всегда хорошая идея использовать упакованный тип Integer
в этом случае Используйте java.util.Map
. Существует несколько реализаций:
HashMap
: поиск O (1), не поддерживает порядок ключей TreeMap
: поиск O (log n), поддерживает порядок ключей, так что вы можете перебирать их в гарантированном порядке LinkedHashMap
: поиск O (1), перебирает ключи в том порядке, в котором они были добавлены на карту. Вы используете их как:
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("Stop me", 11);
map.put("Feed me", 12);
int value = map.get("Stop me");
Для добавления для удобства работы с коллекциями ознакомьтесь с библиотекой Google Collections . Отлично.
Вы используете Map
в Java.
Обратите внимание, что вы не можете использовать int
(или любой другой примитивный тип) в качестве общего параметр типа, но из-за автобокса он по-прежнему ведет себя почти , как если бы это был Map
вместо Map
. (Однако вы не хотите делать много автобоксов в коде, чувствительном к производительности.)
Map<String, Integer> entries = new HashMap<String, Integer>();
entries.put("Stop me", 11);
entries.put("Feed me", 12);
entries.put("Walk me", 13);
int value = entries.get("Stop me"); // if you know it exists
// If you're not sure whether the map contains a value, it's better to do:
Integer boxedValue = entries.get("Punch me");
if (boxedValue != null) {
int unboxedValue = boxedValue;
...
}
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("Stop Me", 11);
map.put("Feed Me", 12);
map.put("Walk Me", 13);
Integer x; // little hack
int value = (x = a.get("aaa")) == null? 0 : x;
в качестве альтернативы вы можете попробовать Enum:
enum Action {
STOP(11),
FEED(12),
WALK(13);
private final int value;
private Action(int value) {
this.value = value;
}
public int value() {
return value;
}
public static Action valueOf(int value) {
for (Action action : values()) {
if (action.value == value) {
return action;
}
}
return null; // or a null-object
}
}
test:
public void action() {
Action action = Action.valueOf("FEED");
// or Action.FEED for more compile-time safety
int value = action.value();
// instantiating by code
Action walk = Action.valueOf(13);
}
Вам определенно нужен HashMap
, который является версией Java C # Dictionary
.