Это действительно зависит от того, как Вы собираетесь получить доступ к дереву.
Одна умная техника должна дать каждому узлу идентификатор строки, где идентификатор родителя является предсказуемой подстрокой ребенка. Например, родитель мог быть '01', и дети будут '0100', '0101', '0102', и т.д. Таким образом, можно выбрать все поддерево из базы данных сразу с:
SELECT * FROM treedata WHERE id LIKE '0101%';
, поскольку критерий является первоначальной подстрокой, индекс на столбце ID ускорил бы запрос.
Попробуйте (в зависимости от того, какой тип результата вы хотите):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
Преимущество:
Boolean.TRUE
, либо Boolean.FALSE
. Официальная документация в Javadoc .
ОБНОВЛЕНО:
Автобоксинг также можно использовать, но это снижает производительность.
Я предлагаю использовать его только тогда, когда вам нужно использовать себя, а не когда этого можно избежать.
Помимо отличного ответа KLE, мы также можем сделать что-то более гибкое:
boolean b = string.equalsIgnoreCase("true") || string.equalsIgnoreCase("t") ||
string.equalsIgnoreCase("yes") || string.equalsIgnoreCase("y") ||
string.equalsIgnoreCase("sure") || string.equalsIgnoreCase("aye") ||
string.equalsIgnoreCase("oui") || string.equalsIgnoreCase("vrai");
(на основе ответа zlajo ...: -))
Boolean b = Boolean.valueOf(string);
Значение b
истинно, если строка не является нулем и равно истинно
(без учета регистра).
Будьте осторожны при использовании Boolean.valueOf (строка) или Boolean.parseBoolean (строка) . Причина в том, что методы всегда будут возвращать false, если String не равно «true» (регистр игнорируется).
Например:
Boolean.valueOf("YES") -> false
Из-за такого поведения я бы рекомендовал добавить некоторый механизм в убедитесь, что строка, которая должна быть преобразована в логическое значение, соответствует указанному формату.
Например:
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}