본문 바로가기
파워쉘(Powershell)/문법

ArrayList

by 예배파 2024. 3. 7.

ArrayList

 

ArrayList와 배열(Array)과 비슷하게 데이터를 저장하거나 저장된 데이터를 조작하는데 사용합니다

 

 

 

ArrayList와 배열의 다른점

  • 동적 구조이기 때문에 사이즈를 키우거나 축소 가능
  • 대규모 데이터를 넣고 빼는 작업을 할 때 배열보다 빠름
  • 사이즈가 고정된 작은 수의 데이터를 저장하고 사용할 때는 배열이 더 빠름
  • 데이터 정렬(Sort), 데이터 찾기(Search)와 같은 많은 유용한 기능들을 제공

사용방법

 

ArrayList 생성

#빈 ArrayList 생성
$al = New-Object System.Collections.ArrayList

#5개 짜리 ArrayList 생성
$al = New-Object System.Collections.ArrayList(5)

 

 

ArrayList에 아이템 넣는 방법


1. Add() 메소드를 사용

$al = New-Object System.Collections.ArrayList
$al.Add("apple")
$al.Add("banna")


실행결과
0
1

 

실행결과를 보면 0, 1이 출력 되는데, 이 의미는 각 아이템이 ArrayList의 몇 번째에 저장 되었는지 알려줍니다

0 : ArrayList의 첫 번째에 "apple" 저장
1 : ArrayList의 두 번째에 "banna" 저장

 

 

2. AddRange() 메소드 사용
AddRange()를 사용하면 배열을 ArrayList에 넣을 수 있습니다

$al = New-Object System.Collections.ArrayList
$arr = 'apple','banna'
$al.AddRange($arr)
$al

실행결과
apple
banna

 

 

ArrayList에 아이템 제거 방법

 

1. Remove()

특정한 아이템을 넣어서 제거

$al = New-Object System.Collections.ArrayList
$arr = 'apple','banna'
$al.AddRange($arr)

$al.Remove('apple')
$al


실행결과
banna

 

 

2. RemoveAt()

아이템의 index값을 사용해서 해당 아이템을 제거 

$al = New-Object System.Collections.ArrayList
$arr = 'apple','banna'
$al.AddRange($arr)

$al.RemoveAt(0)    #첫 번째 아이템 제거
$al


실행
banna

 

 

3. Clear()

ArrayList의 모든 아이템 제거

$al = New-Object System.Collections.ArrayList
$arr = 'apple','banna'
$al.AddRange($arr)

$al.Clear()    #모든 아이템 제거

 

 

 

Index를 사용해서 ArrayList의 값 읽기

 

[]사이에 index값을 넣어서 ArrayList의 값을 읽습니다

$al = New-Object System.Collections.ArrayList
$arr = 'apple','banna'
$al.AddRange($arr)

$al[1]      #두 번째 아이템


실행결과
banna

 

index는 0부터 시작하기 때문에 $al[1]은 두 번째 아이템을 반환합니다

첫 번째 아이템은 $al[0]가 됩니다

 

 

ArrayList 아이템 개수 확인

 

Count 속성값을 사용해서 전체 개수를 알 수 있습니다

$al = New-Object System.Collections.ArrayList
$arr = 'apple','banna'
$al.AddRange($arr)

$al.Count


결과
2

 

 

Loop를 사용해서 ArrayList 값 읽기

 

1. For 사용방법

$al = [System.Collections.ArrayList]@("kim", "Lee", "Park")
For($i=0; $i -lt $al.Count; $i++) {
  $e = $al[$i]
  Write-host $e
}


결과
kim
Lee
Park

 

 

2. ForEach 사용방법 

$al = [System.Collections.ArrayList]@("kim", "Lee", "Park")
ForEach($e in $al){
    Write-Host $e
}

ArrayList에 저장된 데이터의 개수를 알 필요 없어서 사용하기 편합니다

 

 

3. Pipe 사용방법

$al = [System.Collections.ArrayList]@("kim", "Lee", "Park")
$al | ForEach-Object {
    Write-Host $_
}

ArrayList에 저장된 값의 수만큼 ForEach-Object의 블록에 명령어들을 반복 수행합니다
$_ 는 파이프를 통해 넘어온 값을 의미합니다
ArrayList에 값이 3개 저장되어 있기 때문에 이 예제에서는 블록의 명령어가 3번 실행이 됩니다
첫 번째 실행될때 kim 이 넘어와서 $_는 kim 값을 갖고 있고 kim을 출력하게 됩니다
두 번째 실행될때는 Lee가 파이프를 통해서 넘어와서 $_ 는 Lee 값을 갖고,
세 번째 실행될때는 Park 값이 파이프를 통해서 넘어와서 $_ 는 Park 갖게 됩니다

'파워쉘(Powershell) > 문법' 카테고리의 다른 글

파워쉘 - 날짜, 시간 (Get-Date)  (0) 2024.04.05
파워쉘 해시 테이블(Powershell HashTable)  (0) 2024.03.08
반복문 (For, ForEach, Do ~ while, While)  (0) 2024.02.09
배열 - Array  (0) 2024.01.21
조건문 - if, switch  (0) 2024.01.19