java.util Zusammenfassung 3 (HashTable, Aufzählung)

Was diesmal zu schreiben:

Die Eigenschaftendatei zur Eingabe von Schlüsseln und Werten in Hashtable usw.

temp.properties


key1 = value1
key2 = value2
key3 = value3
key4 = value4

test.properties


key11 = value11
key12 = value12
key13 = value13

enumeration_sample.properties


key1 = Java
key2 = JavaScript
key3 = Scala
key4 = Python2
key5 = Python3

verwenden.

Hashtable-Klasse

Eine Klasse, die eine Hash-Tabelle implementiert. Diese Klasse stammt aus Java 1.0 und ist immer noch eine aktive (?) Klasse, wie der Vorfahr von ConcurrentHashMap. Hash-Tabellen werden als assoziative Arrays bezeichnet und lassen sich gut mit Hash-Maps mischen. Den Unterschied zwischen der Hash-Tabelle und der Hash-Map finden Sie unter dem folgenden Link.

Der Punkt ist, dass HashMap HashMap und Hashtable Hashtable ist.

Im folgenden Beispiel wird die Eigenschaft standardmäßig im Voraus festgelegt, in Hashtable kopiert, die Eigenschaft, die Sie festlegen möchten, wird festgelegt, und die Eigenschaft wird neu mit Hashtable festgelegt, einer Kopie der Standardeigenschaft. Programm zum Importieren.

HashtableSample.java


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Properties;

public class HashtableSample {

	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws FileNotFoundException, IOException {
		Hashtable<String, String> hashTable = new Hashtable<String, String>();
		Properties properties = new Properties();
		
		properties.load(new FileInputStream("./Property/temp.properties")); 
		hashTable = (Hashtable<String, String>) properties.clone(); 
		
		System.out.println("Default Property: " + properties);
		
		properties.load(new FileInputStream("./Property/test.properties"));
		properties.putAll(hashTable);
		
		System.out.println("Second Property: " + properties);
		
		if(properties.containsKey("key4")){
			System.out.println("key4 is exist.");
		} else {
			System.out.println("key4 isn't exist.");
		}
	}
}

Ergebnis ist

Default Property: {key4=value4, key3=value3, key2=value2, key1=value1}
key13 isn't exist.
Second Property: {key13=value13, key12=value12, key11=value11, key4=value4, key3=value3, key2=value2, key1=value1}
key13 is exist.

Wird sein. Hier gibt key13 einen Schlüssel an, der nicht der Standard ist.

enthältKey-Methode

Eine in der Map-Schnittstelle definierte Methode, die bestimmt, ob sich der durch das Argument angegebene Schlüssel in Hashtable befindet. Gibt true zurück, wenn Hashtable diesen Schlüssel hat.

putAll-Methode

Eine in der Map-Oberfläche definierte Methode, die alle Argumentzuordnungen nach Hashtable kopiert.

Ergänzende Dinge

Da die Properties-Klasse von der Hashtable-Klasse erbt, können Hashtable-Methoden verwendet werden.

Aufzählungsschnittstelle

Dies ist ebenfalls aus Java 1.0 und ähnelt dem Vorfahren von Iterator. Die Operation ist die gleiche wie bei Iterator. Warum dann nicht Iterator verwenden? Ich denke, aber das ist nicht der Fall. Einige Klassen verfügen über Methoden, die einen Aufzählungstyp zurückgeben (java.util.Hashtable # elements (), java.util.Hashtable # keys (), java.util.Properties # propertyNames () usw.). Sie müssen sie daher ordnungsgemäß verwenden.

Das folgende Beispiel ist ein Programm, das eine Liste von Eigenschaftsschlüsseln in den Aufzählungstyp einfügt, nach dem Wert dieses Schlüssels sucht und ihn an die Konsole ausgibt.

EnumerationSample.java


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;

public class EnumerationSample {

	public static void main(String[] args) throws FileNotFoundException, IOException{
	
		Properties properties = new Properties();
		properties.load(new FileInputStream("./Property/enumration_sample.properties"));
		
		for(Enumeration<Object> enumeration = properties.keys(); enumeration.hasMoreElements();){
			String name = (String) enumeration.nextElement();
			System.out.println(properties.getProperty(name));
		}
	}
}

Ergebnis ist

Python3
Python2
Scala
JavaScript
Java

Wird sein.

hasMoreElements-Methode

Eine in der Aufzählungsschnittstelle definierte Methode. Diese Methode bestimmt, ob die Aufzählung die folgenden Elemente enthält: Gibt true zurück, wenn die folgende Methode vorhanden ist.

nextElement-Methode

Eine in der Aufzählungsschnittstelle definierte Methode. Eine Methode, die das nächste Element zurückgibt, wenn die Aufzählung ein oder mehrere Elemente enthält. Gibt NoSuchElementException zurück, wenn keine weiteren Elemente vorhanden sind.

Recommended Posts

java.util Zusammenfassung 3 (HashTable, Aufzählung)
java.util Zusammenfassung 4 (Arrays, List, ListIterator)
Zusammenfassung