Collection & Generics

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

//삽입
		for(String f:flowers)
			list.add(f);

//출력#1_for
		for(int i=0;i<list.size();i++)
			System.out.println(list.get(i));
		
//출력#2_for~each
		for(String l:list)
			System.out.println(l);
  • 컬렉션에 elements 삽입 요령(배열과 유사)

Class Generics(제네릭에 클래스 대입)

public class Board {

	private String writer;
	private String subject;
	private String content;
	
	public Board() {	} //default생성자
	
	public Board(String w,String s,String c) { //명시적생성자
		this.writer=w;
		this.subject=s;
		this.content=c;
	}
//getter,setter생성
  • 멤버 변수 클래스
import java.util.List;
import java.util.Scanner;
import java.util.Vector;

public class VectorBoard_02 {

	//Vector<Board> list=new Vector<Board>();
	List<Board> list=new Vector<Board>();
  • 클래스 타입으로 지정했으므로 데이터를 꺼내고 받을때도 클래스
//입력 메소드
	public void inputBoard() {
		Scanner sc=new Scanner(System.in);
		String writer,subject,content;
		
		System.out.println("작성자명?");
		writer=sc.nextLine();
		System.out.println("제목?");
		subject=sc.nextLine();
		System.out.println("내용?");
		content=sc.nextLine();
		
		//Board data=new Board(writer,subject,content); //명시적생성자용
		Board data=new Board();
		data.setWriter(writer);
		data.setSubject(subject);
		data.setContent(content);
		
		list.add(data);
		
		System.out.println("현재데이터 갯수: "+list.size());
	}
  • 클래스 변수인 data를 list 컬렉션에 추가
//출력 메소드
	public void writeBoard() {
		System.out.println("게시판");
		System.out.println("============");
		
		for(int i=0;i<list.size();i++)
		{
			Board b=list.get(i); //리스트내에 지정된 위치에 있는 요소값 돌려준다
			
			System.out.println("번호: "+(i+1)+"\t작성자: "+b.getWriter()
							+"\n제목: "+b.getSubject()+"\t내용 "+b.getContent());
		}
	}
  • list 컬렉션에는 클래스가 들어있으므로 그 index인 list.get( i )는 클래스 변수에 상응
public static void main(String[] args) {
		// TODO Auto-generated method stub

		VectorBoard_02 vb=new VectorBoard_02();
		Scanner sc=new Scanner(System.in);
		int n;
		
		while(true)
		{
			System.out.println("1.추가 2.전체출력 9.종료");
			n=Integer.parseInt(sc.nextLine());
			
			if(n==1)
				vb.inputBoard();
			else if(n==2)
				vb.writeBoard();
			else if(n==9)
			{
				System.out.println("프로그램 종료");
				break;
			}
			else
			{
				System.out.println("잘못입력했어요");
				continue;
			}
		}	
	}
}
  • inputBoard와 writeBoard 메소드를 호출하기 위해 변수 vb 생성

Format

Date(SimpleDateFormat)

public static void main(String[] args) {

		Date date=new Date();
		System.out.println(date);
		
//날짜 시간을 원하는 양식에 맞게 출력
		//HH: 24시간  MM:월  mm:분
		SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm");
		System.out.println(sdf1.format(date));
		
		//a:오전/오후  hh:12시간
		SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd a hh:mm:ss");
		System.out.println(sdf2.format(date));

		//EEE:요일짧게  EEEE:요일길게
		SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm EEEE");
		System.out.println(sdf3.format(date));
  • Date 클래스는 현재 시각 호출

Number Currency Comma(NumberFormat)

//숫자,돈 컴마등등
		int money=3298421;
		double num=3.234321;
		
		NumberFormat nf1=NumberFormat.getCurrencyInstance();//화폐단위 컴마제공
		System.out.println(nf1.format(money));
		
		NumberFormat nf2=NumberFormat.getInstance();//컴마제공
		System.out.println(nf2.format(num));
		System.out.println(nf2.format(money));
	}
}
  • NumberFormat은 new가 아닌 getCurrencyInstance 혹은 getInstance로 생성

Exception

FileWriter

import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

public class FileWriter_05 {

	public static void fileWriter() {
		FileWriter fw=null; //메서드에서는 반드시 초기값 지정
		String fileName="D:\\sist0615\\file\\filetest1.txt";
  • 저장할 경로\저장할 파일명
		try {
			fw=new FileWriter(fileName); //파일새로 생성(같은이름이 있어도 새로생성)
			
			//파일에 내용 추가
			fw.write("Have a Nice Day!!\n"); //메모장 줄넘김
			fw.write(new Date().toString()); //문서형식으로
			System.out.println("파일 저장 성공");
			
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				fw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
  • fw.write 메소드에는 모두 문서형식(문자열)으로 담아야함 (→toString 사용)
  • 같은 이름의 파일 생성 시 기존 파일 삭제 후 새로 생성
public static void fileWriter2() {
		FileWriter fw=null;
		String fileName="D:\\sist0615\\file\\filetest2.txt";
		
		try {
			fw=new FileWriter(fileName,true);//추가모드
			
			fw.write("내이름은 홍길동\n");
			fw.write("===========\n");
			
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				fw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
  • FileWriter( )의 뒤 인자값이 true면 기존 파일에 내용 추가(같은 내용 반복됨)
public static void main(String[] args) {
		fileWriter();
		fileWriter2();
	}
}
profile
초보개발자

0개의 댓글