Giả sử bạn có một số NSArray
với các bản sao @[1,2,3,1,1,2,4,5,6]
;Tìm các bản sao trong NSArray
Tìm tất cả các bản sao; điều này có thể ở dạng giả mã. Đây là câu hỏi về thuật toán nhiều hơn một khung nền tảng (không sử dụng câu hỏi NSSet
).
Giả sử bạn có một số NSArray
với các bản sao @[1,2,3,1,1,2,4,5,6]
;Tìm các bản sao trong NSArray
Tìm tất cả các bản sao; điều này có thể ở dạng giả mã. Đây là câu hỏi về thuật toán nhiều hơn một khung nền tảng (không sử dụng câu hỏi NSSet
).
Sử dụng một NSCountedSet
và chỉ in các yếu tố đó trả về một số> 1 cho countForObject:
phương pháp
Tham khảo this để biết thêm thông tin
như @Lithu mô tả, sử dụng NSCountedSet
, xem mã dưới đây.
NSArray *arr = [[NSArray alloc]initWithObjects:@(1),@(1),@(2), @(1),nil]; NSCountedSet *cs = [[NSCountedSet alloc] initWithArray:arr]; NSLog(@"object count greater than 1 are"); for(NSNumber *num in cs){ if([cs countForObject:num]>1) NSLog(@"%@",num); }
Điều này thật tuyệt vời! :) – Hemang
Hãy nhìn vào NSCountedSet. Bạn có thể tạo một trong số đó từ mảng của bạn, sau đó lặp lại và xem cái nào có số lớn hơn 1. – rdelmar
Tôi không bao giờ biết NSArray có thể lưu trữ trực tiếp các giá trị Integer. : O –