Ein TreeSet oder TreeMap, das Duplikate zulässtJava

Java-Forum
Anonymous
 Ein TreeSet oder TreeMap, das Duplikate zulässt

Post by Anonymous »

Ich benötige eine Sammlung, die das Element sortiert, aber die Duplikate nicht entfernt.

Ich habe mich für ein TreeSet entschieden, da TreeSet tatsächlich die Werte zu einer unterstützten TreeMap hinzufügt:

Code: Select all

public boolean add(E e) {
return m.put(e, PRESENT)==null;
}
Und die TreeMap entfernt die Duplikate mithilfe der Comparators-Vergleichslogik

Ich habe einen Comparator geschrieben, der bei gleichen Elementen 1 statt 0 zurückgibt. Daher überschreibt das TreeSet mit diesem Comparator bei gleichen Elementen das Duplikat nicht und sortiert es einfach.

Ich habe es für einfache String-Objekte getestet, aber ich benötige einen Satz benutzerdefinierter Objekte.

Code: Select all

public static void main(String[] args)
{
List strList = Arrays.asList( new String[]{"d","b","c","z","s","b","d","a"} );
Set strSet = new TreeSet(new StringComparator());
strSet.addAll(strList);
System.out.println(strSet);
}

class StringComparator implements Comparator
{
@Override
public int compare(String s1, String s2)
{
if(s1.compareTo(s2) == 0){
return 1;
}
else{
return s1.compareTo(s2);
}
}
}
Ist dieser Ansatz in Ordnung oder gibt es einen besseren Weg, dies zu erreichen?

BEARBEITEN

Eigentlich habe ich eine ArrayList der folgenden Klasse:

Code: Select all

class Fund
{
String fundCode;
BigDecimal fundValue;
.....

public boolean equals(Object obj) {
// uses fundCode for equality
}
}
Ich brauche den gesamten fundCode mit dem höchsten fundValue

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post