java - compareTo not working - Testing all combinations of two strings -



java - compareTo not working - Testing all combinations of two strings -

my class defined follows...

public static class connection implements comparable<connection>

here compareto method.

@override public int compareto(connection o) { list<string> combinations = new arraylist<string>(); for(string lcp : lcp_order){ for(string state : state_order){ combinations.add(lcp + state); } } int result = combinations.indexof(this.lifecycle + this.conneditstate) - combinations.indexof(o.getlifecycle() + o.getconneditstate()); homecoming result; }

so on output have..

this lcp = pr state = null o lcp = advertisement o state = null result = 0

this should not homecoming 0 because lcp different. need way test combinations of 2 strings. suggestions?

in list of combinations, you're not adding variants 1 of 2 values null.

in test you're executing, state null, combination not found. phone call indexof homecoming -1 in both cases, , - 1 - (-1) result in 0.

as side note:

if possible, want store combinations constant instead of building list every time compareto called. you might want separate lcp state sort of separator character avoid clashes (the case lcp1 + state1 == lcp2 + state2, e.g. "ab" + "c" == "a" + "bc") if such risk exists.

you don't need build list of combinations, , can implement compareto method comparing indexes of lcp , state in lcp_order , state_order separately:

@override public int compareto(connection o) { int orderindex = lcp_order.indexof(this.lifecyle) - lcp_order.indexof(o.lifecyle); if (orderindex != 0) { homecoming orderindex; } int stateindex = state_order.indexof(this.conneditstate) - state_order.indexof(o.conneditstate); homecoming stateindex; }

java

Comments

Popular posts from this blog

Delphi change the assembly code of a running process -

json - Hibernate and Jackson (java.lang.IllegalStateException: Cannot call sendError() after the response has been committed) -

C++ 11 "class" keyword -