두 배열이 있습니다. 의가 있다고 가정 해 봅시다 :배열을 다른 배열과 같은 순서로 정렬합니다.
array = "Dave", "Mike", "Joe", "Jason", "Kevin"
및
IQ = 110, 145, 75, 122, 130
내가 IQ별로 정렬하고 싶습니다. 가장 높은 곳에서 가장 낮은 곳으로 말하십시오. 하나의 배열을 정렬 할 수 있습니다. 그런 다음 다시 돌아가서 배열의 위치를 확인한 다음 다른 배열을 다시 배열합니다. 이것을하기위한 더 좋은 방법이있는 것처럼 보입니다. 특히 배열이 커지면.
내가 어떻게하는지 지금 여기 있습니다.
d1, d2, d3, d4, d5
은 내 IQ
입니다. sortBack
배열을 사용하여 다른 배열을 같은 순서로 재정렬합니다.
NSMutableArray *myArray = [NSMutableArray arrayWithObjects:[NSString stringWithFormat:@"%d",d1], [NSString stringWithFormat:@"%d",d2],[NSString stringWithFormat:@"%d",d3], [NSString stringWithFormat:@"%d",d4],[NSString stringWithFormat:@"%d",d5], nil];
//sorting
[myArray sortUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
return [str1 compare:str2 options:(NSNumericSearch)];
}];
for(int i=0;i<5;i++)
{
if([[myArray objectAtIndex:i] integerValue]==d1)
{
sortBackArray[i]=1;
}
else if([[myArray objectAtIndex:i] integerValue]==d2)
{
sortBackArray[i]=2;
}
else if([[myArray objectAtIndex:i] integerValue]==d3)
{
sortBackArray[i]=3;
}
else if([[myArray objectAtIndex:i] integerValue]==d4)
{
sortBackArray[i]=4;
}
else if([[myArray objectAtIndex:i] integerValue]==d5)
{
sortBackArray[i]=5;
}
}
왜 두 개의 배열을 유지 관리하고 있습니까? 이름과 IQ 값으로 사전을 배열하는 것이 좋습니다. 그런 다음 키 IQ로 sortDescriptor를 작성하고 배열을 정렬 할 수 있습니다. 관련 정보가 있으면 항상 함께 보관하십시오. – Anupdas
네, 그게 길일지도 모른다고 생각했지만, 사전과 혼동하는 경향이 있습니다. 다시 한번 살펴 보겠습니다. –
데이터를 구조화하기 위해 사전이나 사용자 정의 모델 객체를 사용하지 않으면 매우 어려울 것입니다. 나는 예제를 게시했다. 보세요. – Anupdas