webForumDet fria alternativet

Jämföra innehåll i 2 vektorer

Java

2 svar · 308 visningar · startad av eriwi

Medlem sedan dec. 20048 inlägg
Frågan#1

Hej

Har ett stort problem: Jag har en vektorer som i sin tur innehåller en massa vektorer. Som jag vill jämföra om dom innehåller samma siffror och ta bort dom som har det.

tex

Vektorn: Pos1: [0-2-5-9] Pos2:[0-5-8-7] Pos3:[0-5-9-2]

här skulle jag vilja ta bort [0-5-9-2] eftersom den innehåller samma siffror som [0-2-5-9]

Hade en ide att man kunde göra så här men det fungerar inte:

routes är den vektor som innehåller de andra vektorerna
predecssors är "undervektorerna"

if (((node) (routes.elementAt(k))).predecessors.size() == ((node) (routes.elementAt(k+1))).predecessors.size()) {

for (int l=1; k <= (((node) (routes.elementAt(k))).predecessors
.size()); l++) {

				if	 (((node) (routes.elementAt(k))).predecessors
							.contains(new Integer(l))
							&& (((node) (routes.elementAt(k+1))).predecessors
									.contains(new Integer(l)))) {

//ta bort den vektorn son innehåller samma siffror

Är inte så bra på att förklara, men tanken är att jämnföra positionen i den vektor jag står i med med samma position i nästa vektor och se om dom är lika. Gå vidare till nästa etc etc

Kanske någon har en ide //Erik

Medlem sedan sep. 2001961 inlägg
#2

En Vector som innehåller en jämförbar typ, t.ex. en Integer, går att sortera med Collections.sort(List l). Det är det man bör göra först.

I interfacet List finns en metod som heter containsAll(List l). Denna implementeras av Vector.

Alltså kan du göra såhär: (pseudo)
Vector pos1 = [0-2-5-9]
Vector pos2 = [0-5-8-7]
Vector pos3 = [0-5-9-2]

if(pos1.containsAll(pos2))
remove(pos2)

typ...

Sedan är det (nästan) alltid bättre att använda sig av Iterator om man skall lopa igenom hela Collections (List, Vector o.s.v).

Medlem sedan dec. 20048 inlägg
#3

tack

ska prova //Erik

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)