05 марта 2009

Занятие 5 марта: разминка

Два вопроса на знание некоторых тонкостей

Вопрос 1.
Что будет напечатано в консоли после выполнения такого кода:
class Test {
  String[] keys = new String[] {"key1", "key2"};

  boolean find(String key) {
    for (int i=0; i<keys.length; i++) {
      if (keys[i] == key) 
        return true;  
    }
    return false;
  }
}

Test t = new Test();
if (t.find("key1"))
  System.out.println("key1");
if (t.find(new String("key2")))
  System.out.println("key2");

Вопрос 2
Что вернёт метод size() ?
class Key {
  int x;
  int y;
  Key(int x, int y) {
    this.x = x;
    this.y = y;
  }
  int hashCode() {
    return x+y;
  }
}
HashTable t = getHashTable();
t.put(new Key(0,0), "value1");
t.put(new Key(0,0), "value2");
System.out.println(t.size());