2014-10-20 4 views
-1

Учитывая следующие Java коды:Как проверить, является ли Hashtable является недействительным в Java

Hashtable<String,Integer> hs = new Hashtable<String,Integer>(); 
    if(hs==null){ 
     System.out.println("this table is blank"); 
    } 

Новый Hashtable создается без пар. Почему на консоли нет выхода? Кстати, как проверить, является ли Hashtable нулевым?

+0

пусто и пустые разные. –

+0

'hs' не является хэш-таблицей. 'hs' является _variable_. 'new Hashtable ...():' создает новый объект Hashtable в куче и сохраняет ссылку на новый объект в 'hs'. «null» - это специальное значение, которое означает, что «не относится к какому-либо объекту». –

ответ

2

Hashtable не null, когда она пуста; сам объект все еще существует. Вместо этого используйте метод isEmpty().

if (hs.isEmpty()){ 
+0

@Downvoter Просьба указать, как вы думаете, что этот пост можно улучшить. – rgettman

0

Потому что это не пустой

Hashtable<String,Integer> hs = new Hashtable<String,Integer>(); 
    if(hs==null){ //true if hashtable equals to null (which is not 
     System.out.println("this table is blank"); 
    } 

Если вы хотите проверить, если он пуст или нет, используйте hs.isEmpty()

0

потому что вы создаете новую хеш-таблицу перед тем, как вы ее проверите. Вам, вероятно, необходимо это сделать

if(hs.isEmpty()){ 
    System.out.println("this table is blank"); 
} 
Смежные вопросы