Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#의 SortedList, Java SortedMap 인터페이스와 비교하기

Java에는 정렬된 키-값 쌍을 다루는 SortedMap 인터페이스가 존재합니다. C#에서는 이와 동일한 역할을 하는 컬렉션으로 SortedList를 제공합니다.

SortedList란 무엇인가?

C#의 SortedList 컬렉션은 키(Key)인덱스(Index) 두 가지 방식으로 목록 내 항목에 접근할 수 있다는 점이 특징입니다.

SortedList는 본질적으로 배열(Array)해시 테이블(Hashtable)의 결합 형태라고 볼 수 있습니다. 즉, 하나의 항목 목록을 키 또는 인덱스 어느 쪽으로든 접근할 수 있도록 지원합니다.

  • 인덱스로 접근하는 경우 → ArrayList처럼 동작합니다.
  • 키로 접근하는 경우 → Hashtable처럼 동작합니다.

또한 SortedList에 저장된 항목들은 항상 키 값을 기준으로 자동 정렬되어 유지됩니다. 이 덕분에 정렬 상태가 보장되어야 하는 데이터를 다룰 때 매우 유용합니다.

SortedList 사용 예제

아래 예제는 SortedList에 항목을 추가한 뒤, 저장된 키들을 화면에 출력하는 코드입니다.

using System;
using System.Collections;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            SortedList sl = new SortedList();
            sl.Add("ST0", "One");
            sl.Add("ST1", "Two");
            sl.Add("ST2", "Three");
            ICollection key = sl.Keys;

            foreach(string k in key) {
                Console.WriteLine(k);
            }
        }
    }
}

실행 결과

키가 삽입 순서와 관계없이 항상 오름차순으로 정렬되어 출력되는 것을 확인할 수 있습니다.

ST0
ST1
ST2

정리

Java 개발자가 C#으로 전환할 때 SortedMap 대신 SortedList를 사용하면 됩니다. 키 기반 정렬과 인덱스 기반 접근을 동시에 지원하는 SortedList는 정렬된 데이터 구조가 필요한 상황에서 실용적인 선택지가 됩니다.