Java: Unterschied zwischen den Versionen
(→Sorting) |
(→Sorting) |
||
Zeile 50: | Zeile 50: | ||
public class UserSorter | public class UserSorter | ||
{ | { | ||
− | public List<User> sort( | + | public List<User> sort(List<User> list) |
{ | { | ||
// get comparator | // get comparator |
Version vom 7. Juli 2009, 09:55 Uhr
Inhaltsverzeichnis
Operatoren
IF THEN ELSE
Abkürzung für if-then-else: ?:
boolean-expression ? op1 : op2 ; Bedeutet: IF boolean-expression = true THEN op1 ELSE op2;
Wichtig: Diese Operation gibt ein Wert zurück! Also entweder op1 oder op2, je nach dem, ob die boolean-expression true oder false ist!
Also:
newOp = boolean-expression ? op1 : op2 ; Bedeutet: IF boolean-expression = true THEN newOp = op1 ELSE newOp = op2;
Schleifen
break und continue
In for-, while- und do-while-Schleifen können break und continue eingesetzt werden:
- break
- Der Schleifendurchlauf wird beendet und die Abarbeitung bei der ersten Anweisung nach der Schleife fortgeführt.
- continue
- Geht zum Schleifenkopf zurück. Nach dem Auswerten des Fortschaltausdrucks wird im nächsten Schritt erneut geprüft, ob die Schleife weiter durchlaufen werden soll.
Collections
Sorting
Zum sortieren muss ein Objekt Comparable
sein. Wenn das aber nicht geht (z.B. wenn man ein und dasselbe Objekt auf verschiedene
arten sortiert werden soll (ein Telefonbuch nach Nachname, Vorname, Ort, ...)), dann muss das anders gelöst werden.
Ein Beispiel:
/**
* UserSorter
*
* <p>
* Sort strategy to sort the User by field <code>name.
* </p>
*
* @author mic
*
*/
public class UserSorter
{
public List<User> sort(List<User> list)
{
// get comparator
Comparator<User> comparator = new NameComparator();
// sort list with configured comparator
Collections.sort(list, comparator);
return list;
}
}
/**
* NameComparator
*
* <p>
* Compare User field name
.
* </p>
*
* @author mic
*/
class NameComparator implements Comparator<User>
{
public int compare(User o1, User o2)
{
String s1 = o1.getName();
String s2 = o2.getName();
// both are null
if(s1 == null && s2 == null)
{
return 0;
}
// either of them is null
if(s1 == null)
{
return -1;
}
if(s2 == null)
{
return 1;
}
// compare strings
return s1.compareToIgnoreCase(s2);
}
}
Diverses
Java-VM-Args (kann z.B. in eclipse benutzt werden [eclipse.ini oder beim Starten von eclipse])
JavaDoc
Apache Config
web.xml
Web.xml ist die Konfigurationsdatei für den Servlet-Container.
- Element
- load-on-startup (optional)
- Wert
- Ganzzahl
- Beschreibung
- Definiert, dass das zugehörige Servlet beim Starten der Servers mit gestartet wird. Die Ganzzahl gibt die Reihenfolge an. Wenn 0, dann ist die Reihenfolge egal. Ab Servlet-Schema 2.4 darf load-on-startup nicht leer sein (<load-on-startup/>).
- Beispiel
- <load-on-startup>0</load-on-startup>
JSP
Interessante Links
Interfaces
Interfaces sind im Grunde genommen abstrakte Klassen, wo ALLE Methoden abstrakt sind. Das heisst, dass eine Implementierung
davon auch alle Methoden implementieren muss.
Auch Konstanten und Objekte (inkl. Instanzierung) können in Interfaces geschrieben werden. Beispiel:
public interface MyConstants { /** Constant 1 */ public static final String CTX_RUNTIME = "RUNTIME"; /** Constant 2 */ public static final String INDIV_ITEM = "INDIV_ITEM"; /** Objects */ public static final Map<String, String> myMap = new HashMap<String, String>(10); // Auch neue Objekte sind möglich ... }
Naming
Gängige Benennungen der Klassen und deren Bedeutung
- Factory
- Fabrik
- Wrapper
- Wandler