달력

10

« 2024/10 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2010. 5. 19. 19:10

[10일차]Set 클래스 Objective-C2010. 5. 19. 19:10

Set 클래스
  • 모든 멤버가 순서에 상관없이 저장되고 중복된 데이터는 삽입되지 않는 컬렉션

종류
NSSet
NSMutableSet  // NSSet을 상속
NSCountedSet // NSMutableSet을 상속
                     : 인스턴스와 저장된 개수를 가지고 있는 Set (참조회수 조회시 유용)

1. NSSet 클래스
메서드
+(id)set
// 요소가 포함되지 않는 임시 인스턴스 생성
+(id)setWithObjects:obj1,obj2... ,nil // 중복데이터 배제
// 오브젝트 들을 이용해서 set을 생성
-(id)setWithObjects:obj1,obj2... ,nil // 중복데이터 배제
// 오브젝트 들을 이용해서 set을 초기화
-(id)initWithArray:(NSArray*)array // 중복데이터 배제
-(NSArray *)allObjects; //
-(NSUInteger)count; // 개수를 리턴
-(NSEnumberator *)objectEnumerator; //
--------------------------------------------------------------------------------
#import <foundation/NSSet.h>
#import <foundation/NSString.h>
#import <foundation/NSEnumerator.h>

int main(int argc, const char * argv[])
{
    NSEnumerator * it;
    NSString * element;
    NSSet * setString = [NSSet setWithObjects:@"One",@"Two",@"Three",@"One",nil];

    NSLog(@"setString: ");
    it = [setString objectEnumerator];
    while((element=[it nextObject])!=nil)
    NSLog(@"%@",element);

    NSArray * ar = [NSArray arrayWithObjects:@"One",@"Two",@"Three",@"One",nil];
    setString = [setString initWithArray:ar];
   
    NSLog(@"ar: ");
    it = [ar objectEnumerator];
    while((element = [it nextObject])!=nil)
    NSLog(@"%@",element);
   
    NSLog(@"setString: ");
    it = [setString objectEnumerator];
    while((element =[it nextObject])!=nil)
    NSLog(@"%@",element);
   
    system("pause");
    return 0;
}
--------------------------------------------------------------------------------

2) 멤버의 포함여부와 동일성 여부
-(BOOL)containsObject : obj
-(BOOL)isSubsetOfSet : nsset => nsset에 모든 멤버가 있으면 YES
-(BOOL)intersectsSet : nsset => 공통요소가 있으면 YES
-(BOOL)isEqualToSet : nsset  => 동일한 경우

2. NSMutableSet : 변경가능한 SET
-(id)setWithCapacity:size =>size 만큼 저장할 수 있는 초기 용량으로 새로 생성
-(id)initWithCapacity:size
-(void)addObject:obj
-(void)removeObject:obj
-(void)unionSet:nsset
-(void)minusSet:nsset
-(void)intersectSet:nsset =>공통되지 않은 요소를 제거

3. NSCountSet

  • 중복된 데이터의 경우 count 값을 증가시키는 set
  • obj가 추가된 개수 리턴
:
Posted by 에너지발전소