반응형
1.Contoller
1 2 3 4 5 6 7 8 9 10 11 12 | @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale, Model model) { logger.info("Welcome home! The client locale is {}.", locale); LinkedList<String> link = new LinkedList<String>(); link.addLast("a"); link.addLast("b"); link.addLast("c"); model.addAttribute("link", link); return "home"; } | cs |
2.JSP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false"%> <%@ page contentType="text/html; charset=utf-8" %> <%@page import="java.util.*" %> <% //LinkedList 받기 예제 LinkedList<String> linkedList = (LinkedList<String>)request.getAttribute("link"); System.out.println(linkedList); %> <%=linkedList %> <html> ......... | cs |
이외에도 맵 리스트등의 데이터도
getAttribute로 객체형태로 받아서 캐스팅만 잘해주면 손쉽게 받을수있었다
아래는 링크드 리스트를 만드는 방법에 대해 설명한다
출처: https://blog.perfectacle.com/2017/08/06/linked-list-making/
List는 데이터를 순차적으로 저장하므로 선형 구조(한 줄로 계속 되며, 데이터가 끊어지지 않음)이다.
또한 여기서 말하는 노드는 하나의 데이터 덩어리라고 보면 될 것 같다.
LinkedList란…?
LinkedList는 스택의 다음과 같은 단점을 극복하고자 만들어졌다.
- 노드의 끝 부분을 제외한 곳에 데이터 삽입
스택은 끝 부분에만 데이터를 삽입할 수 있으므로 중간에 데이터를 삽입할 방법이 존재하지 않았다.
LinkedList는 배열의 이러한 단점을 노드(배열의 각 요소)가 다음 주소지를 알게 함으로써 그 단점을 극복하였다.
하지만 신은 공평하듯, 이 LinkedList에도 다음과 같은 장/단점이 있다.
- 데이터의 접근 속도가 느리다.
LinkedList는 다음 노드에 대한 참조만을 가지고 있다.
따라서 255 번째 노드의 데이터를 불러오려면 처음부터 순차적으로 255 번째 노드까지 접근해야한다.
배열에 비해 이러한 접근 속도가 매우 느리다. - 다음 노드에 대한 참조만 있을 뿐, 이전 노드에 대한 데이터는 없다.
따라서 이전 노드의 값을 가져올 수는 없다.
이는 Doubly Linked List라는 이중 링크드 리스트라는 자료구조를 만들어 해결하였다. - 처음 노드에서 마지막 노드로, 혹은 마지막 노드에서 처음 노드로 가려면 시간이 오래 걸린다.
Doubly Linked List를 이용해도 순차적인 접근 밖에 되지 않기 때문에 어쨌든 계속해서 노드들을 타고 타고 끝이나 처음으로 이동해야 한다.
이러한 단점을 극복하기 위해 처음 노드에 대한 이전 참조를 마지막 노드로, 마지막 노드에 대한 다음 참조를 처음 노드로 이어줘 원형 구조로 만든 Doubly Circular Linked List가 있다.
따라서 이 LinkedList를 잘 살리려면 중간에 삽입/삭제가 빈번하며 검색을 자주 하지 않는 자료를 담을 때 사용해야한다.
만들어보자!
먼저 기본적인 Node부터 만들어보았다.
|
|
그 다음엔 LinkedList를 만들어보았다.
|
|
틀린 게 많을지는 모르겠지만…
일단은 구현을 했다는 것에 의의를 두고 나중에 다시 수정해야겠다.
반응형
'IT > Jsp|JSTL' 카테고리의 다른 글
jstl split,startsWith,endsWith 사용법 (0) | 2018.01.26 |
---|---|
JSTL 과 Javascript 혼용 사용의 실제사례 (0) | 2018.01.03 |
Javascript 에서 JSTL 사용하기 와 주의사항 (2) | 2018.01.02 |