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 |