๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Study/Java

[TIL] List<E>

by hong- 2022. 5. 17.

๐Ÿ™Œ๐Ÿป List

(1) ์š”์†Œ์˜ ์ €์žฅ ์ˆœ์„œ ์œ ์ง€
(2) ๊ฐ™์€ ์š”์†Œ์˜ ์ค‘๋ณต ์ €์žฅ ํ—ˆ์šฉ

- ๊ฐ์ฒด๋ฅผ ์ผ๋ ฌ๋กœ ๋Š˜์–ด๋†“์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

- ๊ฐ์ฒด๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ธ๋ฑ์Šค๋กœ ๊ฒ€์ƒ‰, ์‚ญ์ œ ๊ฐ€๋Šฅ

- LinkedList : ๋ฐ์ดํ„ฐ ์žฆ์€ ๋ณ€๊ฒฝ ์‹œ ์‚ฌ์šฉ

- ArrayList : ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์‚ฌ์šฉ

(1) ๊ฐ์ฒด ์ถ”๊ฐ€ add(int index, Object element)

 - ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€

(2) ์ปฌ๋ ‰์…˜ ์ถ”๊ฐ€ addAll(int index, Collection c)

 - ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ์ปฌ๋ ‰์…˜ ์ถ”๊ฐ€ → return : boolean

(3) ๊ฐ์ฒด ์ €์žฅ set(int index, Object element)

 - ์ฃผ์–ด์ง„ ์œ„์น˜์— ๊ฐ์ฒด๋ฅผ ์ €์žฅ

(4) ๊ฐ์ฒด ๊ฒ€์ƒ‰ get(int index)

 - ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜

(5) ์ˆœ๋ฐฉํ–ฅ / ์—ญ๋ฐฉํ–ฅ ๊ฒ€์ƒ‰ indexOf(Object o) / lastIndexOf(Object o)

 - ์ˆœ๋ฐฉํ–ฅ / ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰ํ•˜์—ฌ ์ฃผ์–ด์ง„ ๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜

(6) ๋ฆฌ์ŠคํŠธ ์ดํ„ฐ๋ ˆ์ดํ„ฐ ๊ฒ€์ƒ‰ listIterator() / listIterator(int index)

 - List์˜ ๊ฐ์ฒด๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ListLterator ๋ฐ˜ํ™˜

 - ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ListIterator ๋ฐ˜ํ™˜

(7) ๋ฒ”์œ„ ์ง€์ • ๊ฐ์ฒด ๊ฒ€์ƒ‰ subList(int fromIndex, int toIndex)

 - from ์ธ๋ฑ์Šค๋ถ€ํ„ฐ to ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ์ฒด ๋ฐ˜ํ™˜

(8) ๊ฐ์ฒด ์‚ญ์ œ remove(int index) / remove(Object o)

 - ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‚ญ์ œ๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜

 - ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œ remove(Object o) → return : boolean

(9) ๊ฐ์ฒด ์ •๋ ฌ sort(Comparator c)

 - ์ฃผ์–ด์ง„ ๋น„๊ต์ž๋กœ ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ


๐Ÿ™Œ๐Ÿป ArrayList

- ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด ์š”์†Œ์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

- ์ €์žฅ์šฉ๋Ÿ‰์ด ์ดˆ๊ณผ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋Š˜์–ด๋‚จ (but, ๋ฐฐ์—ด์€ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •)

- ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์กด์žฌ (๋ฆฌ์ŠคํŠธ์™€ ์œ ์‚ฌ)

- ๋ฐ์ดํ„ฐ ์ˆœ์ฐจ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰(์ฝ๊ธฐ)๋Š” ๋น ๋ฆ„

- ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์‚ญ์ œ์—์„œ๋Š” ์ด๋™์ด ๋งŽ์•„์ ธ ๋А๋ฆผ

 

๐Ÿ“ ArrayList ์ƒ์„ฑ

 - ์ €์žฅํ•  ๊ฐ์ฒด ํƒ€์ž…์„ ์ œ๋„ค๋ฆญ์œผ๋กœ ํ‘œ๊ธฐํ•˜๊ณ  ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ํ˜ธ์ถœ

 - ArrayList์— ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ธ๋ฑ์Šค 0๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ €์žฅ

 - ์‚ฝ์ž… ๋ฐ ์‚ญ์ œํ•˜๋ฉด ์ธ๋ฑ์Šค๊ฐ€ ๋‹ฌ๋ผ์ง → ์‚ฝ์ž… ์‚ญ์ œ ๋นˆ๋ฒˆํ•˜๋ฉด LinkedList ์‚ฌ์šฉ

 

List<ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ> ๊ฐ์ฒด๋ช… = new ArrayList<ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ>(์ดˆ๊ธฐ ์ €์žฅ์šฉ๋Ÿ‰);

(1) ๊ฐ์ฒด ์ƒ์„ฑ

List<String> ls = new ArrayList<String>();

(2) ๊ฐ์ฒด ์ถ”๊ฐ€

ls.add("Crown")

(3) ArrayList์— ์ €์žฅ๋œ ๊ฐ์ฒด ์ˆ˜ ํ™•์ธ

ls.size();

(4) 1๋ฒˆ ์ธ๋ฑ์Šค์˜ ๊ฐ์ฒด ์–ป๊ธฐ

ls.get(1);

(5) 0๋ฒˆ ์ธ๋ฑ์Šค ๊ฐ์ฒด ์‚ญ์ œ

ls.remove(0);

๐Ÿ™Œ๐Ÿป LinkedList

- ๋น„์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ

- ๊ฐ ์š”์†Œ๋“ค์€ ์ž์‹ ๊ณผ ์—ฐ๊ฒฐ๋œ ์š”์†Œ์˜ ์ฃผ์†Œ๊ฐ’๊ณผ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ

- ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์‹œ, ์ด์ „ ์š”์†Œ๊ฐ€ ์‚ญ์ œํ•˜๊ณ ์žํ•˜๋Š” ์š”์†Œ์˜ ๋‹ค์Œ ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ๋ณ€๊ฒฝ ( ๋งํฌ๋ฅผ ๋Š์–ด ์คŒ )

- ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์‹œ, ์ด์ „ ์š”์†Œ๊ฐ€ ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ์š”์†Œ๊ฐ€ ๋‹ค์Œ ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ๋ณ€๊ฒฝ

- ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์‚ญ์ œ ์‹œ ์ฐธ์กฐ๋งŒ ๋ณ€๊ฒฝ๋˜๋ฏ€๋กœ ๋น ๋ฆ„

- ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋…ธ๋“œ ์ˆœํšŒํ•˜์—ฌ ๋А๋ฆผ

package Mon;

import java.util.LinkedList;

public class LinkedListTest {
    public static void main(String[] args) {
        LinkedList<String> ll = new LinkedList<String>();

        ll.add("One");
        ll.add("Two");
        ll.add("Three");
        ll.add("Four");
        ll.add("Five");

        for (int i=0; i<ll.size(); i++){
            System.out.print(ll.get(i)+" ");
        }
        System.out.println();

        for (String s : ll){
            System.out.print( s + " ");
        }
    }
}
//๊ฒฐ๊ณผ
One Two Three Four Five
One Two Three Four Five

๐Ÿ™Œ๐Ÿป Iterator ์ดํ„ฐ๋ ˆ์ดํ„ฐ

Iterator<String> it = list.iterator();

- List, Set, Map ๋“ฑ๊ณผ ๊ฐ™์€ ์ง‘ํ•ฉ์ฒด๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์–ป์–ด๋‚ด๋Š” ๋ฐฉ๋ฒ• ์ œ๊ณต

- .์„ ์“ฐ๋ฉด ์–ด๋–ค ์ปฌ๋ ‰์…˜์ด๋ผ๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ (๋‹คํ˜•์„ฑ)

- hasNext() : ๊ฐ€์ ธ์˜ฌ ๊ฐ์ฒด๊ฐ€ ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false

- next() : ์ปฌ๋ ‰์…˜์—์„œ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ด

- remove() : ์ปฌ๋ ‰์…˜ ๊ฐ์ฒด ์‚ญ์ œ

- ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ˆœ์„œ : hasNext()๋กœ ์กด์žฌํ™•์ธ   next()๋กœ ๊ฐ€์ ธ์˜ด remove()

package Mon;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorTest {
    public static void main(String[] args) {
        List<String> ls = new ArrayList<String>();
        ls.add("๊ฐ€");
        ls.add("๋‚˜");
        ls.add("๋‹ค");

        Iterator it = ls.iterator();
        while (it.hasNext()==true){
            String letter = (String) it.next();
            System.out.print(letter + " ");
        }
        System.out.println();
        
        for (String letter2 : ls){
            System.out.print(letter2 + " ");
        }
    }
}
//๊ฒฐ๊ณผ
๊ฐ€ ๋‚˜ ๋‹ค
๊ฐ€ ๋‚˜ ๋‹ค

'Study > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] Map<K, V>  (0) 2022.05.18
[TIL] Set<E>  (2) 2022.05.17
[TIL] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ  (0) 2022.05.17
[TIL] ์ถ”์ƒํด๋ž˜์Šค vs ์ธํ„ฐํŽ˜์ด์Šค  (0) 2022.05.15
[TIL] ๋‹คํ˜•์„ฑ  (0) 2022.05.15