java

쉽지만 어려운 #Java #자바 #성공적 4.자료구조(리스트,스택,큐,해쉬테이블,집합)

sieunju 2016. 4. 13. 19:25
반응형

안녕하세요 j.sieun입니다. 


자료구조에 대해 알아보도록 하겠습니다. 


우선 


자료구조란 음...데이터나 자료를 좀더 효율적으로 배치하거나 저장하기 위한 알고리즘을 뜻합니다. 


바로 문법에 대해 알아보도록 하겠습니다. 


자료구조에서는 



자료구조 클래스 이름

리스트 Arraylist, LinkedList, (Vector)

스택         LinkedList, (Stack)

        LinkedList

해쉬 테이블  LinkedList, (Hashtable)

집합         HashSet


**위클래스들은 모드 java.util 패키지에 속함


이런식으로 되어있습니다. 


아래는 자료구조 클래스를 사용하는 방법입니다.


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


이런식으로 되어있습니다. 


여기서 앞에 ArrayList 를 썼을때 뒤에도 똑같이 ArrayList 를 적으셔야 합니다. 


그리고 빨간색글씨는 타입 파라미터(type parameter) 입니다. 즉, 어떤 타입을 list 에 저장할지 


정하는 것입니다. 


아주 간단하게 저렇게 사용합니다. 


그럼 기본적인 메소드에 대해 알아보도록 하겠습니다. 


list.add("사과"); → A


list.add(new Integer(73));   B


여기서 간단한 문제 드립니다. A와 B 둘중 어느 하나는 list 라는 자료구조에 넣을수가 없습니다. 


어떤 것일까요??


정답은 B입니다. 


앞서 선언했던 ArrayList <String> list = new ArrayList<String>(); 


으로 타입 형태를 String 으로 선언하였으므로 정수 타입을 추가하는것은 불가합니다. 


현재 list 클래스의 형태는 아래 형식으로 데이터가 저장이됩니다. 







데이터를 추가하였으면 가져와야 할텐데요.


그 메소드는  .get(배열칸); 입니다. 


즉, 제가 저위에 있는 딸기의 값을 가져오고싶다고 한다면 


String  str = list.get(1); 를 입력하면 str의 값은 "딸기" 가 됩니다.


데이터를 가져왔으면 삭제하는 기능도 알아야 할텐데요 


그 메소드는 .remove(); 가 되겠습니다. 


제가 저기 위에 있는 배열에서 복숭아 값을 삭제하고싶다 


그럼 list.remove(3); 또는 list.remove("복숭아") 를 입력하시면 그 값이 삭제가 됩니다. 


그리고 값을 변경하는 메소드도 있습니다. 


제가 키위라는 값을 사과로 변경하고싶다면


list.set(2,"사과"); 로 입력하시면 됩니다. 



참외라는 값이 어디에 있는지 알고싶을떈,


int index = list.indexOf("참외");


라 입력하시면 어디에 있는지 알려줍니다. 


그리고 지금까지 넣었던 데이터가 어느정도 크기인지 알고싶을떈


int index = list.size();


가 되겠습니다. 


ArrayList 자료구조는 이정도 메소드만 알고있어도 될거 같습니다. 


다음번에는 스텍에 대해 알아보도록 하겠습니다. 


감사합니다.



※궁금하신거 댓글달아주시길 바랍니다. ㅎㅎ


퍼가시는건 상관 없는데 말은 하고 퍼가주시길 바랍니다.^^※








반응형