JAVA / λ°°μ—΄(Array) 와 리슀트(List) 의 차이 / μ œλ„€λ¦­μŠ€(Generics)

2023. 1. 20. 15:24Β·Develop/JAVA


λ°°μ—΄(Array)


배열은 μžλ£Œν˜• νƒ€μž… λ°”λ‘œ μ˜†μ— [] 기호λ₯Ό μ‚¬μš©ν•˜μ—¬ ν‘œν˜„ν•œλ‹€. μœ„ μ˜ˆμ œμ™€ 같이 int μžλ£Œν˜•μ˜ 배열은 int[] 둜 ν‘œν˜„ν•œλ‹€.

int[] odds = {1, 3, 5, 7, 9};

String[] weeks = {"μ›”", "ν™”", "수", "λͺ©", "금", "ν† ", "일"};

λ°°μ—΄μ˜ κΈΈμ΄λŠ” κ³ μ •λ˜μ–΄ μžˆλ‹€

즉, λ°°μ—΄μ΄λž€ μžλ£Œν˜•μ˜ μ’…λ₯˜κ°€ μ•„λ‹Œ μžλ£Œν˜•μ˜ 집합을 μ˜λ―Έν•œλ‹€.


리슀트(List)

λ¦¬μŠ€νŠΈμ™€ λ°°μ—΄μ˜ κ°€μž₯ 큰 μ°¨μ΄λŠ” 배열은 크기가 μ •ν•΄μ Έ μžˆμ§€λ§Œ λ¦¬μŠ€νŠΈλŠ” 크기가 μ •ν•΄μ Έ μžˆμ§€ μ•Šκ³  λ™μ μœΌλ‘œ λ³€ν•œλ‹€λŠ” 점이닀.
예λ₯Ό λ“€μ–΄ λ°°μ—΄μ˜ 크기λ₯Ό 10개둜 μ •ν–ˆλ‹€λ©΄ 10개 μ΄μƒμ˜ 값을 담을 μˆ˜λŠ” μ—†λ‹€.
ν•˜μ§€λ§Œ λ¦¬μŠ€νŠΈλŠ” 크기가 μ •ν•΄μ Έ μžˆμ§€ μ•Šμ•„ μ›ν•˜λŠ” 만큼의 값을 담을 수 μžˆλ‹€.

List μžλ£Œν˜•μ—λŠ” ArrayList, Vector, LinkedList λ“±μ˜ List μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ μžλ£Œν˜•μ΄ μžˆλ‹€
List μžλ£Œν˜• 쀑 κ°€μž₯ κ°„λ‹¨ν•œ ν˜•νƒœμ˜ μžλ£Œν˜•μΈ ArrayList에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.




μ œλ„€λ¦­μŠ€(Generics)

ArrayList<String> pitches = new ArrayList<>();

처럼 객체λ₯Ό ν¬ν•¨ν•˜λŠ” μžλ£Œν˜•λ„ μ–΄λ–€ 객체λ₯Ό ν¬ν•¨ν•˜λŠ”μ§€μ— λŒ€ν•΄μ„œ λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•  것을 κΆŒκ³ ν•˜κ³  μžˆλ‹€

<T>, <String>, <Object, String> λ“±κ³Ό 같은 ν‘œν˜„μΈ μ œλ„€λ¦­(Generics)에 λŒ€ν•˜μ—¬ μ•Œμ•„λ³΄λ € ν•œλ‹€.

// ArrayList
ArrayList<String> arrList = new ArrayList<String>();

// List
List<Integer> list = new ArrayList<Integer>();

이 <>λ₯Ό μ œλ„€λ¦­(Generics)이라 ν•˜λŠ”λ°, 이 <>μ•ˆμ— μ–΄λ– ν•œ νƒ€μž…μ„ μ„ μ–Έν•΄μ£Όμ–΄
ν•΄λ‹Ή ArrayList, List 등이 μ‚¬μš©ν•  객체의 νƒ€μž…μ„ μ§€μ •ν•΄μ€€λ‹€λŠ” λœ»μ΄λ‹€.
μ΄λŠ” λ‹€λ£° 객체의 νƒ€μž…μ„ 미리 λͺ…μ‹œν•˜μ—¬ 객체의 ν˜•λ³€ν™˜μ„ μ‚¬μš©ν•  ν•„μš”μ—†κ²Œ ν•˜λ©°,
λ‚΄κ°€ μ‚¬μš©ν•˜κ³  싢은 데이터 νƒ€μž…λ§Œ μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€. 

1. νƒ€μž…μ˜ μ•ˆμ •μ„± : μ˜λ„ν•˜μ§€ μ•Šμ€ νƒ€μž…μ˜ 객체가 μ €μž₯λ˜λŠ” 것을 막고, λ‹€λ₯Έ νƒ€μž…μ˜ 객체둜 μΈν•œ νƒ€μž… ν˜•νƒœκ°€ λ§žμ§€ μ•Šμ•„ λ°œμƒν•˜λŠ” 문제λ₯Ό μ—†μ• μ€€λ‹€.
2. λΆˆν•„μš”ν•œ ν˜•λ³€ν™˜μ„ 쀄여 μ½”λ“œμ˜ 간결함 : νƒ€μž…을 미리 λͺ…μ‹œν•¨μœΌλ‘œμ¨ λ‹€λ₯Έ νƒ€μž…μ˜ 객체가 μ €μž₯λ˜μ§€ μ•Šμ•„ 객체λ₯Ό κΊΌλ‚΄ μ‚¬μš©ν•  μ‹œ ν˜•λ³€ν™˜μ„ ν†΅ν•œ νƒ€μž…μ„ 맞좜 ν•„μš”κ°€ μ—†μ–΄ μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ 쀄일 수 μžˆλ‹€.

https://gangnam-americano.tistory.com/m/47

[JAVA] Java μ œλ„€λ¦­(Generics)μ΄λž€?

[JAVA] Java μ œλ„€λ¦­(Generics)μ΄λž€? μ§€λ‚œ ν¬μŠ€νŒ…μ—μ„œ Java μ»¬λ ‰μ…˜(Collection)에 λŒ€ν•˜μ—¬ μ•Œμ•„λ³΄μ•˜λ‹€. μ˜€λŠ˜μ€ Java의 μ»¬λ ‰μ…˜μ„ μ‚¬μš©ν•˜λ©΄μ„œ λ³Ό 수 μžˆλŠ” , , λ“±κ³Ό 같은 ν‘œν˜„μΈ μ œλ„€λ¦­(Generics)에 λŒ€ν•˜μ—¬ μ•Œμ•„λ³΄λ €

gangnam-americano.tistory.com

'Develop > JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] μƒμ„±μž(Constructor) / final ν‚€μ›Œλ“œ  (0) 2023.02.07
[JAVA] μ˜ˆμ™Έμ²˜λ¦¬ (Exception)  (0) 2023.01.20
(0) . JAVA ν•™μŠ΅ ν™˜κ²½ κ΅¬μΆ•ν•˜κΈ° / JAVA μ–Έμ–΄μ˜ νŠΉμ§•  (0) 2023.01.07
'Develop/JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [JAVA] μƒμ„±μž(Constructor) / final ν‚€μ›Œλ“œ
  • [JAVA] μ˜ˆμ™Έμ²˜λ¦¬ (Exception)
  • (0) . JAVA ν•™μŠ΅ ν™˜κ²½ κ΅¬μΆ•ν•˜κΈ° / JAVA μ–Έμ–΄μ˜ νŠΉμ§•
hello_u
hello_u
  • hello_u
    😜
    hello_u
  • 전체
    였늘
    μ–΄μ œ
    • 😜 (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring μž…λ¬Έ (20)
        • Spring κΈ°λ³Έ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA κΈ°λ³Έ (16)
        • Spring JPA ν™œμš© (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp 기초 (44)
        • 파이썬 μ½”λ”©ν…ŒμŠ€νŠΈ (64)
        • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • μ»΄ν“¨ν„°μΌλ°˜ (3)
        • 운영체제 (3)
        • λ°μ΄ν„°λ² μ΄μŠ€ (0)
        • 정보톡신 (1)
        • 자료ꡬ쑰 (1)
        • μ†Œν”„νŠΈμ›¨μ–΄ 곡학 (1)
        • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ (0)
        • μ΅œμ‹  λ””μ§€ν„Έ, μΌλ°˜μƒμ‹ (0)
      • 자격증 (41)
        • μ •λ³΄λ³΄μ•ˆκΈ°μ‚¬ (9)
        • μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ (22)
        • λ¦¬λˆ…μŠ€λ§ˆμŠ€ν„° 1κΈ‰ (3)
        • SQLD (7)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
hello_u
JAVA / λ°°μ—΄(Array) 와 리슀트(List) 의 차이 / μ œλ„€λ¦­μŠ€(Generics)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”