java集合類------Propties


以前はよくネットでHashMapとHashtableの違いについて聞いていましたが、自分も見ています。時間が経つと自分も両者の違いを忘れていたことに気づき、実際に使ってみました。
       Propertiesという集合を使用して、nullをvalueに置いたから、Null Pointer Exceptionを抛り出しました。Hashtableを思い出しました。この集合のキーの値は空になってはいけないということです。テストを経て、またPropertiesのソースコードを見ました。次にputの方法を見ました。
	public synchronized V put(K key, V value) {
		// Make sure the value is not null
		if (value == null) {
			throw new NullPointerException();
		}

		// Makes sure the key is not already in the hashtable.
		Entry tab[] = table;
		int hash = key.hashCode();
		int index = (hash & 0x7FFFFFFF) % tab.length;
		for (Entry<K, V> e = tab[index]; e != null; e = e.next) {
			if ((e.hash == hash) && e.key.equals(key)) {
				V old = e.value;
				e.value = value;
				return old;
			}
		}

		modCount++;
		if (count >= threshold) {
			// Rehash the table if the threshold is exceeded
			rehash();

			tab = table;
			index = (hash & 0x7FFFFFFF) % tab.length;
		}

		// Creates the new entry.
		Entry<K, V> e = tab[index];
		tab[index] = new Entry<K, V>(hash, key, value, e);
		count++;
		return null;
	}
 これは簡単に見抜くことができて、valueがnullな時直接にNull PointerExceptionを投げて、もしkeyがnullなならば、null.hashCode()もNull PointerExceptionを抛り出します。ですから、Proptiesのキーの値を決めました。nullはできません。また、このクラスもsynchronizedであり、これをマルチスレッド共有時に使用することで、属性ファイルを格納する専用のセットに問題がないことを保証することができる。
       今回のミスを経て、先生はよくjavaのAPIを見てくださいと教えてくれました。毎日同じ種類のものを見ても、時間があれば多く見てください。先生の気持ちがやっと分かりました。もちろんよく使うのは見てみなければなりません。研ぎは木を切ってもいいですか?基本的な方法を把握しました。コードを書くのが速くなりました。間違えにくいです。既成の方法がないからbaidu、googleに行く必要がないです。何ですか?