2 package org.forester.evoinference.distance;
4 import java.util.ArrayList;
6 import java.util.Map.Entry;
8 import java.util.SortedMap;
9 import java.util.SortedSet;
10 import java.util.TreeMap;
11 import java.util.TreeSet;
13 import org.forester.evoinference.matrix.distance.BasicSymmetricalDistanceMatrix;
17 private final List<SortedMap<Double, SortedSet<Integer>>> _data;
20 _data = new ArrayList<SortedMap<Double, SortedSet<Integer>>>();
23 void addValue( final double key, final int value, final int j ) {
24 final SortedMap<Double, SortedSet<Integer>> m = _data.get( j );
25 addValue( key, value, m );
28 SortedMap<Double, SortedSet<Integer>> getS( final int j ) {
29 return _data.get( j );
32 Set<Entry<Double, SortedSet<Integer>>> getSentrySet( final int j ) {
33 return _data.get( j ).entrySet();
36 void initialize( final BasicSymmetricalDistanceMatrix d ) {
37 for( int j = 0; j < d.getSize(); ++j ) {
38 final TreeMap<Double, SortedSet<Integer>> map = new TreeMap<Double, SortedSet<Integer>>();
40 for( int i = 0; i < j; ++i ) {
41 addValue( d.getValues()[ i ][ j ], i, map );
46 static void addValue( final double key, final int value, final SortedMap<Double, SortedSet<Integer>> m ) {
47 if ( !m.containsKey( key ) ) {
48 final TreeSet<Integer> x = new TreeSet<Integer>();
53 m.get( key ).add( value );