import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Stack;
public class MyApplication {
	public static void main(String[] args) {
		System.out.println("Hello World"); 
		// Ausgabe der Kommandozeilenparameter 
		for (int i=0; i<args.length; i+=2)
			System.out.println(args[i]);
		// einige Systemeigenschaften
		(System.getProperties()).list(System.out);
		// Variante 1) HashTable->Set->Array: invers jede zweite
		System.out.println("-----invers jede zweite------------");
		Object[] p = System.getProperties().entrySet().toArray();
		for (int i = p.length - 1; i>=0; i-=2)
				System.out.println(p[i]);
		// Variante 2) HashTable->Enumeration: jede zweite
		System.out.println("------jede zweite------------------");
		Enumeration<Object> k = System.getProperties().keys();
		while (k.hasMoreElements())
		{
			Object myKey = k.nextElement();
			System.out.println(myKey + "=" + System.getProperty((String) myKey));
			if (k.hasMoreElements())
				k.nextElement();
		}
		// Variante 3) HashTable->Set->Array->Stack: invers jede zweite
		System.out.println("------invers jede zweite------------------");
		Object[] entries = System.getProperties().entrySet().toArray();
		Stack<Object> s = new Stack<Object> ();
		for (Object e: entries)
			s.push(e);
		while (!s.empty())
		{
			System.out.println(s.pop());
			if (!s.empty())
				s.pop();
		}
		// Variante 4) ArrayList: invers
		System.out.println("------invers------------------");
		ArrayList<Object> myAL = new ArrayList<Object>(System.getProperties().entrySet());
		Collections.reverse(myAL);
		myAL.forEach(System.out::println);
	    // ----------------------------------------------------------------
		System.out.println("-----------------"); 
		System.out.println(System.getProperty("java.home")); 
		System.out.println("-----------------"); 
		System.out.println(System.getenv("JAVA_HOME"));
	}
} 