카테고리 없음

Java Todo List 만들기 : ArrayList사용

개발자국S2 2021. 7. 13. 22:59
// vo import처리
import com.mococo.dataset.TodoData;
		  
//	Todo.java 클래스 - 추후 코드들은 전부 해당 클래스 아래 있는 것임
public class Todo{
	ArrayList<TodoData> todoList = null; // 하나의 계획 (TodoData Vo객체) 초기화
	private int todoId = 0;				 // 각 계획의 id값

	public Todo() throws Exception{
    
    	try {
        
        	todoList = new ArrayList<TodoData>(); 
        
        } catch(Exception e)
		{
			throw e;
		}
    }
    

}

// ArrayList 안에 값 넣어주기
public void insert(String subject, String startDate, String endDate) throws Exception {
		try
		{
									// 앞에 4자리 띄워라 0001 처럼
			String todoDataId = String.format("%04d", ++this.todoId);
			
			TodoData todoData = new TodoData();
			todoData.setId(todoDataId);
			todoData.setSubject(subject);
			todoData.setStartDate(startDate);
			todoData.setEndDate(endDate);
			todoData.setComplete(false);
			
			todoList.add(todoData);
			
			
		}
		catch(Exception e)
		{
			throw e;
		}
		
	}

// 어레이리스트 값 선택하기 (어떤 계획 쓸건지) - 서비스 단에서 상세히 기술
public ArrayList<TodoData> select() throws Exception {
		try
		{
			return todoList;
		
		}
		catch(Exception e)
		{
			throw e;
		}
		
	}

MVC 패턴을 사용하였다. 단, DB는 사용하지 않았다. 

 

Vo

각 계획에 대한 id 값을 부여했고, 내용(subject) , 실행일자(startDate), 종료일자(endDate), 실행여부(isComplete)로 잡았다.

package 패키지위치.dataset;

public class TodoData {

	private String id;
	private String subject;
	private String startDate;
	private String endDate;
	private boolean isComplete;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getStartDate() {
		return startDate;
	}
	public void setStartDate(String startDate) {
		this.startDate = startDate;
	}
	public String getEndDate() {
		return endDate;
	}
	public void setEndDate(String endDate) {
		this.endDate = endDate;
	}
	public boolean isComplete() {
		return isComplete;
	}
	public void setComplete(boolean isComplete) {
		this.isComplete = isComplete;
	}
	@Override
	public String toString() {
		return "[" + id + " / " + subject + " / " +  startDate + " / " + endDate +  " / " + isComplete + "]";
	}
	
	
	
}

 

Service

ArrayList 만들기 , 뼈대만들기

import 저장위치.TodoData;	// vo import처리

public class Todo {
	
	ArrayList<TodoData> todoList = null;
	private int todoId = 0;
	
	public Todo() throws Exception
	{
		try
		{
			todoList = new ArrayList<TodoData>();
		}
		catch(Exception e)
		{
			throw e;
		}
	}

	// 모든 예외처리는 호출하는 쪽에서 처리해야한다. 즉, 여기서 에러를 처리하면 안되는 것. 
	public void insert(String subject, String startDate, String endDate) throws Exception {
		try
		{
									// 0001과 함께 네자리수로 출력
			String todoDataId = String.format("%04d", ++this.todoId);
			
			TodoData todoData = new TodoData();
			todoData.setId(todoDataId);
			todoData.setSubject(subject);
			todoData.setStartDate(startDate);
			todoData.setEndDate(endDate);
			todoData.setComplete(false);	// default값으로 false를 잡음

			todoList.add(todoData);

		}
		catch(Exception e)
		{
			throw e;
		}
		
	}
	
public ArrayList<TodoData> select() throws Exception {
		try
		{
			return todoList;
		
		}
		catch(Exception e)
		{
			throw e;
		}
		
	}

 

Controller 

실제 ArrayLIst에 값 넣기

import com.mococo.dataset.TodoData;
import com.mococo.service.main.Todo;

class TodoTest {

	@Test
	void test() {
		
		try {
			Todo todo = new Todo();
            
            // 실제 값 넣기 - id와 isComplete는 자동으로 들어감
			todo.insert("점심먹기", "20210712", "20210713");
			todo.insert("여행가기", "20210713", "20210720");
			
			ArrayList<TodoData> todoData = todo.select();
			
			for(TodoData data : todoData) {
				
				System.out.println(data.getId() + " / " + data.getSubject()
						+ " / " + data.getStartDate() + " / " + data.getEndDate() + " / " + data.isComplete()
						);

			}
			


		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
	}

}
반응형