[๊ตฌ๋์์นด๋ฐ๋ฏธ IT๊ตญ๋น์ง์] ํ๋ณํ๊ณผ ArrayList ํ์
, ๋ฉํผํ์
๊ณผ External CSS๋ฐฉ์์ ๋ํด ๋ฐฐ์ฐ๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ ์ง์ ํ์ด์ง๋ฅผ ๋ง๋๋ ์ค์ต์ ํ๋ค.
int x = 10;
double dx = (double) x; // intํ์
์ doubleํ์
์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์์ซ์ ์ ์ถ๊ฐํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ์ง ์์
// double dx = x; // ์์ ํ์
์ ์์จ์ค๋ ๊ฐ๋ฅ=์๋ํ๋ณํ, ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ ๊ฐ๋ฅ!
double dy = 3.0;
int y = (int) dy; // doubleํ์
์ intํ์
์ผ๋ก ๋ฐ๊พธ๋ฉด ์์ซ์ ์ด ์๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ = ๋ช
์์ ํ๋ณํ
// int y = dy; error // ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ๋ ํ๋ณํ์ด๊ธฐ ๋๋ฌธ์ ์๋ํ๋ณํ ๋ถ๊ฐ๋ฅ!
float fz = 3.14F;
long z = (long)fz; // ์ด ๊ฒฝ์ฐ๋ ์๋ํ๋ณํ ๋ถ๊ฐ! -> float๊ฐ long๋ณด๋ค ๋ฌผ๋ฆฌ์ ํฌ๊ธฐ๋ ์์ง๋ง ๊ฐ์ ํํํ๋ ๋ฒ์๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ด๋ค
// float๋ ๊ฐํํ๋ฐฉ์์ ์ค์ฐจ๋ฅผ ํ์ฉํ๋ '๋ถ๋์์ซ์ ๋ฐฉ์'์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์!
์ ์๊ฐ์ ๋ฐฐ์ด๋๋ก (ํ์ )์ ์จ์ ์์ ๋ถ์ฌ์ฃผ๋ฉด ๊ทธ ํ์ ์ ๋ฐ๊ฟ ์ ์๋ค. ์ด๊ฒ์ ํ๋ณํ์ด๋ผ๊ณ ํ๋ค.
ํ์ง๋ง ํ๋ณํ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋ค. ๊ธฐ๋ณธํ์
์ ๊ธฐ๋ณธํ์
๋ผ๋ฆฌ, ์ฐธ์กฐํ์
์ ์ฐธ์กฐํ์
๋ผ๋ฆฌ๋ง ํ๋ณํ์ด ๊ฐ๋ฅํ๋ค.
(BUT ์๋ฐ์ธ์ด์์ blooean ํ์
์ ๋ถ๊ฐ๋ฅ!)
์์ ๋ฐฐ์ด ๋ฐฐ์ด๋ณด๋ค ๋ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด ๋ฐ๋ก ArrayList ์ด๋ค.
์ ์๊ฐ์ ์ค์ตํ ์ฐธ์กฐํ์ ์ ๋ฐฐ์ด ๋์ ์ฐธ์กฐํ์ ์ ArrayList๋ ์์ฃผ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด๋ค.
ArrayList๋ ์๋ฐ์ธ์ด์์ ๋ถํธํ ๋ฐฐ์ด๋์ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(API) ํด๋์ค์ด๋ค.
ArrayList<String> list = new ArrayList<String>(3);
: ์ด๋ฌํ ํํ๋ก ์์ฑํ ์ ์๋๋ฐ, ์ด๋ ๊ดํธ()
์์๋ ๋ฐฐ์ด์ฒ๋ผ ๋ฐ๋์ ์ซ์๋ฅผ ์ง์ ํ ํ์ ์์ด ๊ณต๋ฐฑ์ผ๋ก ๋ ์ ์๋ค. ์ด๊ฒ์ ArrayList๊ฐ ๋์ ๋ฐฐ์ด์ด๋ผ๋ ํน์ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐฐ์ด์ length(๊ธธ์ด)๊ฐ ์กด์ฌ ํ๋ค. ๊ทธ๋์ ์ฒ์ ์์ฑํ ๋ ์ง์ ํ ๊ธธ์ด๋ฅผ ์ด๊ณผํด์ ์
๋ ฅํ๋ฉด ์์ธ๊ฐ ๋ฐ์ํ๋ค. ์ด๊ฒ์ ์ ์ ๋ฐฐ์ด ์ด๋ผ ํ๋ค.
ํ์ง๋ง ArrayList๋ size(ํฌ๊ธฐ)๊ฐ ์กด์ฌํ๋ค. ๋ฏธ๋ฆฌ ์ ํด์ง ๊ฐ ์์ด list.add๋ก ์ถ๊ฐํ ๋งํผ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ค. ๋ํ, ๋ฐฐ์ด์ฒ๋ผ ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ ํ์๋ ์๋ค. ์ด๊ฒ์ ๋์ ๋ฐฐ์ด์ด๋ผ ํ๋ค.
<%
//๋ฉํผํ์
8๊ฐ
Byte a = new Byte((byte)1);
short b = new Short((short)2);
Integer c = new Integer(3);
Long d = new Long(4L);
Character e = new Character('๊ฐ');
Float f = new Float(3.14F);
Double g = new Double(3.14);
Boolean h = new Boolean(true);
Integer c2 = 3; // ๋ณดํต ์ด๋ ๊ฒ ์์ฑ, auto boxing์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค
int x = c2; // auto unboxing
int y = Integer.parseInt("777"); // String -(์ฐธ์กฐํ์
ํ๋ณํ)-> Integer -(์ธ๋ฐ์ฑ)-> int, ์ฆ ์ด๊ฑด ํ๋ณํ์ด๋ผ๊ณ ๋ถ๋ฅผ ์๋ ์์
%>
// ๋ค์์ ์ฐธ์กฐํ์
์ ํ๋ณํ๊ณผ ์ธ๋ฐ์ฑ์ด ๋ฐ์ํ์ฌ String์ด int๋ก ๋ณ๊ฒฝ๋จ
// ex) int x = Integer.parseInt("14");
// 1)๋ฌธ์14๋ฅผ (Integer)"14" Integerํ์
์ผ๋ก ํ๋ณํ <- ์ฐธ์กฐํ์
๊ฐ์ ํ๋ณํ
// 2) Integer 14๋ฅผ int 14๋ก ๋ณ๊ฒฝ <- ์ธ๋ฐ์ฑ(๋ฉํผํ์
๊ณผ ๊ธฐ๋ณธํ์
๊ฐ์ ๋ณํ, ๋ฐ์ฑ:๊ธฐ๋ณธ->๋ฉํผ, ์ธ๋ฐ์ฑ:๋ฉํผ->๊ธฐ๋ณธ)
ArrayList<int> list; // error
ArrayList<Integer> list;
๋ฉํผ(๋ฐ์ฑ) ํ์ : ๊ธฐ๋ณธํ์ ๊ณผ ๋์ผํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๊ฐ๋ฅํ ์๋ฐ์ ์ฐธ์กฐํ์ ์ผ๋ก ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(API)์ ํฌํจ๋ ํด๋์ค์ด๋ค.
ArrayList๋ ์ฐธ์กฐํ์ ์ ๋ฐฐ์ด๋ง ์์ฑ ๊ฐ๋ฅํ๋ฏ๋ก ๊ธฐ๋ณธ ํ์ ์ ๋ฐฐ์ด์ ArrayList๋ก ์์ฑํ๋ ค๋ฉด ์๋ฐ์ ๋ฉํผ(๋ฐ์ฑ)ํ์ ์ ์ฌ์ฉํด์ผ ํ๋ค.
๊ธฐ๋ณธํ์
์ ์ฐธ์กฐํ์
์ฒ๋ผ ์ธ ์ ์์ผ๋ฉฐ, ๋ฐ์ฑ๊ณผ ์ธ๋ฐ์ฑํ์
์ ์๋ก ํธํ์ด ๊ฐ๋ฅํ๋ค.
๋น
๋ฐ์ดํฐ๋? ๋ค์ด๋ฒํ์๊ณผ ์นด์นด์คํ์ ๋ฑ.. ์ฑ์ง์ด ๋ค๋ฅธ ๋ฐ์ดํฐ๋ค์ ์งํฉ์ ๋ปํ๋ค. ๋ณดํต ์์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ฐ๊ฒ๋๋ ๊ฐ๋
์ด๋ค.
์ด๋ฐ ๋ฐ์ดํฐ๋ค์ ๋ชจ์์ ํํฐ๋ง ํ๊ธฐ (๋ค๋ฅธ ์ฑ์ง์ ๋ฐ์ดํฐ์์ ๊ณตํต๋ ์ฑ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ผ๊ธฐ=์ ์ ํ๊ธฐ)๋ ์ค๋ฌด์์ ์์ฃผํ๊ฒ ๋๋ ๊ธฐ๋ฅ์ด๋ค.
๊ทธ๋์ ๋จผ์ ์ฒซ๋ฒ์งธ ์ค์ต์ผ๋ก, ArrayList๋ฅผ ์ด์ฉํ์ฌ ๋ค์ํ ์ ๋ณด๋ค์ ๊ฐ์ง๊ณ ์๋ ํ์์ ๋ชฉ๋ก์ ์ ์ ํ์ฌ ์ถ๋ ฅํ๋ ์ฐ์ต์ ํด๋ณด์๋ค.
๐ ์์ฑ (1) - Person.java
package onepiece;
public class Person {
public String name;
public String gender;
public int age;
}
๐ ์์ฑ (2) - PersonList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="onepiece.Person" %>
<%
// ๋ฐ์ดํฐ ์์ฑ
ArrayList<Person> list = new ArrayList<Person>();
// data 1
Person kcs = new Person(); // ๋ณ์์์ฑ
kcs.name = "๊น์ฒ ์"; // ๊ฐ ๋ฃ๊ธฐ
kcs.gender = "๋จ";
kcs.age = 17;
list.add(kcs); // ๋ฆฌ์คํธ์ ์ถ๊ฐ
// data 2
Person lsh = new Person();
lsh.name = "์ด์ํฌ";
lsh.gender = "์ฌ";
lsh.age = 20;
list.add(lsh);
// data 3
Person hkd = new Person();
hkd.name = "ํ๊ธธ๋";
hkd.gender = "๋จ";
hkd.age = 21;
list.add(hkd);
// data 4
Person kha = new Person();
kha.name = "๊นํ์";
kha.gender = "์ฌ";
kha.age = 16;
list.add(kha);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="./myStyle.css"> <!-- (External CSS๋ฐฉ์) -->
</head>
<body>
<table>
<thead>
<tr>
<th>์ด๋ฆ</th>
<th>์ฑ๋ณ</th>
<th>๋์ด</th>
</tr>
</thead>
<tbody>
<%
for(Person p : list) { // list.size()๋งํผ ๋ฐ๋ณต, p๋ ๋ด๊ฐ ์์๋ก ์ง์ด์ฃผ๋ ๋ณ์, ๋ณ์ p์ ๋ฐฐ์ด์ด ์์๋๋ก ๋์
๋จ
%>
<tr>
<td><%=p.name%></td>
<td><%=p.gender%></td>
<td><%=p.age%></td>
</tr>
<%
}
%>
</tbody>
</table>
</body>
</html>
page import
๋ก ํจํค์ง๋ช
์๋ตํ๊ธฐArrayList<Person> list = new ArrayList<Person>();
: ์์ ์์ฑํ ํด๋์ค(์ฐธ์กฐํ์
, Person)์ ArrayList ์์ฑ, ์ด๋ฆ์ list๋ก ์ง์ Person kcs = new Person();
: ํด๋์ค ๋ณ์ kcs ์์ฑkcs.name = "๊น์ฒ ์";
: ๊ฐ ๋ฃ๊ธฐlist.add(kcs);
: ๋ณ์ kcs์ ์
๋ ฅ๋ ๋ชจ๋ ๊ฐ๋ค์ ArrayList์ ์ต์ข
์ ์ผ๋ก ์ถ๊ฐfor(Person p : list)
: foreach๋ฌธ ์ฌ์ฉ, list์ ์ ์ฅ๋ ๊ฐ๋ค์ ํด๋์ค์์ ์์ฑํ ํ์
๋๋ก ๋ถ๋ฌ์ฌ ์ ์๋ค.<%=p.name%>
: ๊ฐ์ ๋ถ๋ฌ์ฌ ๋ foreach๋ฌธ ์์ฑ์ ์์๋ก ๋์
ํ๊ธฐ ์ํด ์ง์ ๋ ๋ณ์์ ์ด๋ฆ๊ณผ ๋ง์นจํ ์ด์ฉ๐ ๊ฒฐ๊ณผ
ํ์๋ค์ ๋ชฉ๋ก์ ์ด๋ฆ, ์ฑ๋ณ, ๋์ด๋ก ์ ์ ํ์ฌ ์ถ๋ ฅํ๋ค.
์ํผ์ค ๋ฑ์ฅ์ธ๋ฌผ์ ๋ฐ์ดํฐ ์ถ์ํํ๊ธฐ
๐ ์์ฑ (1) - Pirate.java
package onepiece;
import java.util.ArrayList; // ํจํค์ง๋ช
์ค์ด๊ธฐ
public class Pirate {
public String name;
public String nickName;
public char gender; // 'M', 'F' ์ถ๋ ฅ์ ๋จ์ฌ ์ด๋ฏธ์ง
public String birth;
public int age;
public int height;
public ArrayList<String> hobby; // โ ์ด๋ ๊ฒ ํ๋ฉด ์ทจ๋ฏธ ์ฌ๋ฌ๊ฐ๋ฅผ ๋ฃ์ ์ ์์
public String blood;
public String country;
public long money; // ํ์๊ธ 20์ต์ ๋์ด๊ฐ์
public String group; // ํด์ (์์)
public boolean isDevilFruit; // ์
๋ง์ ์ด๋งค ์ ๋ฌด // ์ถ๋ ฅ ์ ์ด๋ฏธ์ง
}
public ArrayList<String> hobby;
: ์
๋ ฅ๋๋ ๊ฐ์ด ํ๋๊ฐ ์๋๋ผ ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ ์ด๋ ๊ฒ ArrayList์์ ๋๋ค๋ฅธ ArrayList๋ฅผ ์์ฑํ ์ ์๋ค.๐ ์์ฑ (2) - onepiece.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="onepiece.Pirate" %>
<%@ page import="java.util.ArrayList" %>
<%
// RDBMS(์ค๋ผํด,mysql(mariadb),mssql) ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์์
// ์ฝ๋์์์ ์ฌ์ฉ ๊ฐ๋ฅํ ํํ๋ก (ArrayList<Pirate>) ๋ก ๋ณ๊ฒฝํ ์ ์์ผ๋
// ์ฐ๋ฆฌ๋ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ๋ ๊ฒ
%>
<%
ArrayList<Pirate> list = new ArrayList<Pirate>(); // ๋ฐฐ์ด
// Pirat ๊ฐ์ฒด๋ฅผ 20๊ฐ ์์ฑ
// 1)
Pirate p1 = new Pirate(); // ํด๋์ค
p1.name = "๋ชฝํค D. ๋ฃจํผ";
p1.nickName = "๋ฐ์ง๋ชจ์";
p1.gender = 'M';
p1.birth = "5์ 5์ผ";
p1.age = 19;
p1.height = 174;
p1.hobby = new ArrayList<String>(); // ๋ฐฐ์ด ์์ฑ
p1.hobby.add("๋ชจํ"); // ์ทจ๋ฏธ ์ถ๊ฐ
p1.hobby.add("์์น");
p1.blood = "Fํ";
p1.country = "์ด์คํธ ๋ธ๋ฃจ ๊ณ ์ ์๊ตญ ํ์ค ๋ง์";
p1.money = 3000000000L;
p1.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p1.isDevilFruit = true;
list.add(p1); // ๋ฐฐ์ด์ ์ถ๊ฐ
Pirate p2 = new Pirate();
p2.name = "๋กค๋ก๋
ธ์ ์กฐ๋ก";
p2.nickName = "ํด์ ์ฌ๋ฅ๊พผ";
p2.gender = 'M';
p2.birth = "11์ 11์ผ";
p2.age = 21;
p2.height = 181;
p2.hobby = new ArrayList<String>();
p2.hobby.add("์์ฃผ");
p2.hobby.add("์ํ");
p2.blood = "XFํ";
p2.country = "์ด์คํธ ๋ธ๋ฃจ ์๋ชจ์ธ ํค ๋ง์";
p2.money = 1111000000L;
p2.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p2.isDevilFruit = false;
list.add(p2);
Pirate p3 = new Pirate();
p3.name = "๋๋ฏธ";
p3.nickName = "๋๋๊ณ ์์ด";
p3.gender = 'F';
p3.birth = "7์ 3์ผ";
p3.age = 20;
p3.height = 170;
p3.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p3.blood = "Xํ";
p3.country = "์ด์คํธ ๋ธ๋ฃจ ์ค์ด์ฝํธ ์๊ตญ";
p3.money = 366000000L;
p3.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p3.isDevilFruit = false;
list.add(p3);
Pirate p4 = new Pirate();
p4.name = "์ฐ์";
p4.nickName = "๊ฐ(GOD)";
p4.gender = 'M';
p4.birth = "4์ 1์ผ";
p4.age = 19;
p4.height = 176;
p4.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p4.blood = "Sํ";
p4.country = "์ด์คํธ ๋ธ๋ฃจ ์๋กญ ๋ง์";
p4.money = 500000000L;
p4.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p4.isDevilFruit = false;
list.add(p4);
Pirate p5 = new Pirate();
p5.name = "์๋";
p5.nickName = "๊ฒ์ ๋ค๋ฆฌ";
p5.gender = 'M';
p5.birth = "3์ 2์ผ";
p5.age = 21;
p5.height = 180;
p5.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p5.blood = "Rh- Sํ";
p5.country = "๋
ธ์ค ๋ธ๋ฃจ ์ ๋ฅด๋ง ์๊ตญ";
p5.money = 1032000000L;
p5.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p5.isDevilFruit = false;
list.add(p5);
Pirate p6 = new Pirate();
p6.name = "ํ ๋ํ ๋ ์ตธํ";
p6.nickName = "์์ฌํ๊ด";
p6.gender = 'M';
p6.birth = "12์ 24์ผ";
p6.age = 17;
p6.height = 90;
p6.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p6.blood = "Xํ";
p6.country = "์๋ํ ํญ๋ก ์ฌ์ฟ ๋ผ ์๊ตญ(๊ตฌ ๋๋ผ ์๊ตญ)";
p6.money = 1000L;
p6.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p6.isDevilFruit = true;
list.add(p6);
Pirate p7 = new Pirate();
p7.name = "๋์ฝ ๋ก๋น";
p7.nickName = "์
๋ง์ ์์ด";
p7.gender = 'F';
p7.birth = "2์ 6์ผ";
p7.age = 30;
p7.height = 188;
p7.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p7.blood = "Sํ";
p7.country = "์จ์คํธ ๋ธ๋ฃจ ์คํ๋ผ";
p7.money = 930000000L;
p7.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p7.isDevilFruit = true;
list.add(p7);
Pirate p8 = new Pirate();
p8.name = "์ปคํฐ ํ๋";
p8.nickName = "ํ๋ํค";
p8.gender = 'M';
p8.birth = "3์ 9์ผ";
p8.age = 36;
p8.height = 240;
p8.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p8.blood = "XFํ";
p8.country = "์ฌ์ฐ์ค ๋ธ๋ฃจ";
p8.money = 394000000L;
p8.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p8.isDevilFruit = false;
list.add(p8);
Pirate p9 = new Pirate();
p9.name = "๋ธ๋ฃฉ";
p9.nickName = "์์ธ ํน";
p9.gender = 'M';
p9.birth = "4์ 3์ผ";
p9.age = 90;
p9.height = 277;
p9.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p9.blood = "Xํ";
p9.country = "์จ์คํธ ๋ธ๋ฃจ";
p9.money = 383000000L;
p9.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p9.isDevilFruit = true;
list.add(p9);
Pirate p10 = new Pirate();
p10.name = "์ง๋ฒ ";
p10.nickName = "๋ฐ๋ค์ ํ๊ฐ";
p10.gender = 'M';
p10.birth = "4์ 2์ผ";
p10.age = 46;
p10.height = 301;
p10.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p10.blood = "Fํ";
p10.country = "์ฉ๊ถ ์๊ตญ ์ด์ธ๊ฐ";
p10.money = 1100000000L;
p10.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p10.isDevilFruit = false;
list.add(p10);
Pirate p11 = new Pirate();
p11.name = "์๋์๋ ๋ด๊ฒ์ดํธ";
p11.nickName = "ํฐ ์์ผ";
p11.gender = 'M';
p11.birth = "4์ 6์ผ";
p11.age = 72;
p11.height = 666;
p11.hobby = new ArrayList<String>();
p11.hobby.add("์ ๊ธ");
p11.blood = "Fํ";
p11.country = "์ ์ธ๊ณ ์คํํฌ์ค";
p11.money = 5046000000L;
p11.group = "ํฐ ์์ผ ํด์ ๋จ";
p11.isDevilFruit = true;
list.add(p11);
Pirate p12 = new Pirate();
p12.name = "์นด์ด๋";
p12.nickName = "๋ฐฑ์";
p12.gender = 'M';
p12.birth = "5์ 1์ผ";
p12.age = 59;
p12.height = 710;
p12.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p12.blood = "Fํ";
p12.country = "์๋ํ ํญ๋ก ๋ณด๋์นด ์๊ตญ";
p12.money = 4611100000L;
p12.group = "๋ฐฑ์ ํด์ ๋จ";
p12.isDevilFruit = true;
list.add(p12);
Pirate p13 = new Pirate();
p13.name = "์ฌ๋กฏ ๋ง๋ง";
p13.nickName = "๋น
๋ง";
p13.gender = 'F';
p13.birth = "2์ 15์ผ";
p13.age = 68;
p13.height = 880;
p13.hobby = new ArrayList<String>();
p13.hobby.add("๋ค๊ณผํ");
p13.hobby.add("์ง๊ทํ ๋๋ฌผ ์์ง");
p13.blood = "Xํ";
p13.country = "์๋ํ ํญ๋ก";
p13.money = 4388000000L;
p13.group = "๋น
๋ง ํด์ ๋จ";
p13.isDevilFruit = true;
list.add(p13);
Pirate p14 = new Pirate();
p14.name = "์นํฌ์ค";
p14.nickName = "๋นจ๊ฐ ๋จธ๋ฆฌ";
p14.gender = 'M';
p14.birth = "3์ 9์ผ";
p14.age = 39;
p14.height = 199;
p14.hobby = new ArrayList<String>();
p14.hobby.add("๋ฐฉ๋");
p14.blood = "XFํ";
p14.country = "์จ์คํธ ๋ธ๋ฃจ ๊ฐ๋ฐธ๋ฆฌ";
p14.money = 4048900000L;
p14.group = "๋นจ๊ฐ ๋จธ๋ฆฌ ํด์ ๋จ";
p14.isDevilFruit = false;
list.add(p14);
Pirate p15 = new Pirate();
p15.name = "๋ง์ฌ D ํฐ์น";
p15.nickName = "๊ฒ์ ์์ผ";
p15.gender = 'M';
p15.birth = "8์ 3์ผ";
p15.age = 40;
p15.height = 344;
p15.hobby = new ArrayList<String>();
p15.hobby.add("๋๋ฐ(๊ฒ๋ธ๋ง)");
p15.hobby.add("์ญ์ฌ ํ๊ตฌ");
p15.blood = "Fํ";
p15.country = "์๋ํ ํญ๋ก";
p15.money = 3996000000L;
p15.group = "๊ฒ์ ์์ผ ํด์ ๋จ";
p15.isDevilFruit = true;
list.add(p15);
Pirate p16 = new Pirate();
p16.name = "ํธ๋ผํ๊ฐ D ์จํ
๋ก";
p16.nickName = "์ฃฝ์์ ์ธ๊ณผ์";
p16.gender = 'M';
p16.birth = "10์ 6์ผ";
p16.age = 26;
p16.height = 191;
p16.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p16.blood = "Fํ";
p16.country = "๋
ธ์ค ๋ธ๋ฃจ ํ๋ ๋ฐ์ค";
p16.money = 3000000000L;
p16.group = "ํํธ ํด์ ๋จ";
p16.isDevilFruit = true;
list.add(p16);
Pirate p17 = new Pirate();
p17.name = "๋ฒ๊ธฐ";
p17.nickName = "์ฒ๋ฅ๊ด๋";
p17.gender = 'M';
p17.birth = "8์ 8์ผ";
p17.age = 39;
p17.height = 192;
p17.hobby = new ArrayList<String>();
p17.hobby.add("๋ณด๋ฌผ์ง๋ ๋ชจ์ผ๊ธฐ");
p17.blood = "Fํ";
p17.country = "์๋ํ ํญ๋ก";
p17.money = 3189000000L;
p17.group = "ํฌ๋ก์ค ๊ธธ๋";
p17.isDevilFruit = true;
list.add(p17);
Pirate p18 = new Pirate();
p18.name = "๋ง๋ฅด์ฝ";
p18.nickName = "๋ถ์ฌ์กฐ";
p18.gender = 'M';
p18.birth = "10์ 5์ผ";
p18.age = 45;
p18.height = 203;
p18.hobby = new ArrayList<String>();
p18.hobby.add("๋ฐ์ ์ฝ์คํฐ ์์ง");
p18.blood = "Xํ";
p18.country = "์๋ํ ํญ๋ก";
p18.money = 1374000000L;
p18.group = "์คํํฌ์ค";
p18.isDevilFruit = true;
list.add(p18);
Pirate p19 = new Pirate();
p19.name = "์ฅฌ๋ผํด ๋ฏธํธํฌ";
p19.nickName = "๋งค์ ๋";
p19.gender = 'M';
p19.birth = "3์ 9์ผ";
p19.age = 43;
p19.height = 198;
p19.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p19.blood = "Sํ";
p19.country = "";
p19.money = 3590000000L;
p19.group = "ํฌ๋ก์ค ๊ธธ๋";
p19.isDevilFruit = false;
list.add(p19);
Pirate p20 = new Pirate();
p20.name = "๊ณจ D ์์ด์ค";
p20.nickName = "๋ถ์ฃผ๋จน";
p20.gender = 'M';
p20.birth = "1์ 1์ผ";
p20.age = 20;
p20.height = 185;
p20.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p20.blood = "Sํ";
p20.country = "์ฌ์ฐ์ค ๋ธ๋ฃจ ๋ฐํ
๋ฆฌ๋ผ";
p20.money = 550000000L;
p20.group = "ํฐ ์์ผ ํด์ ๋จ";
p20.isDevilFruit = true;
list.add(p20);
System.out.println(list.size() + "<-- list.size()"); // 20
// ๋๋ฒ๊น
์ฝ๋, 20๊ฐ๊ฐ ์์ฑ์ด ์ ๋๋์ง
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>onepiece.jsp</title>
<style>
table, th, td {border: 1px solid #000000; text-align: center;}
table {border-collapse: collapse;}
.small {width: 30px; height: 30px;}
</style>
</head>
<body>
<h1>๋ฑ์ฅ์ธ๋ฌผ ๋ฆฌ์คํธ</h1>
<h3>
<div>
์ ์ฒด <%=list.size()%>๋ช
<!-- ๋ฐฐ์ด์ ์ ์ฒด ์ฌ์ด์ฆ ์ถ๋ ฅ -->
</div>
</h3>
<table>
<tr>
<th>์ด๋ฆ</th>
<th>๋ณ๋ช
</th>
<th>์ฑ๋ณ</th>
<th>์์ผ</th>
<th>๋์ด</th>
<th>ํค</th>
<th>์ทจ๋ฏธ</th>
<th>ํ์กํ</th>
<th>์ถ์ ์ง</th>
<th>ํ์๊ธ</th>
<th>์์</th>
<th>์
๋ง์ ์ด๋งค</th>
</tr>
<%
for(Pirate p : list) {
%>
<tr>
<td><%=p.name%></td>
<td><%=p.nickName%></td>
<td>
<%
if(p.gender == 'M') {
%>
<img class="small" src="./img/man.jpg">
<%
} else {
%>
<img class="small" src="./img/woman.jpg">
<%
}
%>
</td>
<td><%=p.birth%></td>
<td><%=p.age%>์ธ</td>
<td><%=p.height%>cm</td>
<td>
<%
if(p.hobby != null){ // ์ทจ๋ฏธ์ ๊ฐ์ด ์์ ๋๋ง foreach๋ฌธ ์คํ
int cnt = 1; // foreach๋ฌธ ๋ฐ์์ ๋ณ์ ์์ฑ
for(String h : p.hobby) {
%>
<%=h%>
<%
if(cnt<p.hobby.size()) { // ์ทจ๋ฏธ ์ฌ์ด์ฌ์ด์ ์ผํ(,) ์
๋ ฅ
%>
,
<%
}
cnt = cnt + 1; // ๋ง์ง๋ง์ ์ผํ(,)๊ฐ ์๋์ค๋๋ก
}
}
%>
</td>
<td><%=p.blood%></td>
<td><%=p.country%></td>
<td><%=p.money%>๋ฒ ๋ฆฌ</td>
<td><%=p.group%></td>
<td>
<%
if(p.isDevilFruit == true) {
%>
<img class="small" src="./img/fruit_o.jpg">
<%
} else {
%>
<img class="small" src="./img/fruit_x.jpg">
<%
}
%>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
page import
: ํจํค์ง๋ช
์๋ตArrayList<Pirate> list = new ArrayList<Pirate>();
: ํด๋์ค Pirate ํ์
์ ArratList์ธ list ์์ฑPirate p1 = new Pirate();
: p1 ํด๋์ค ๋ณ์ ์์ฑp1.name = "๋ชฝํค D. ๋ฃจํผ";
: p1 ํด๋์ค ๋ณ์์ ํ์
์ ๋ง๋ ๊ฐ ๋ฃ๊ธฐp1.hobby = new ArrayList<String>();
: ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ด๋ฏ๋ก ArrayList ์์ฑp1.hobby.add("๋ชจํ");
: ArrayListํ์
์ด๋ฏ๋ก add๋ก ๊ฐ ์ถ๊ฐp3.hobby = null;
: ๋ฃ์ ๊ฐ์ด ์์ผ๋ฉด null ์
๋ ฅlist.add(p1);
: p1์ ์
๋ ฅ๋ ๋ชจ๋ ๊ฐ๋ค์ ์ต์ข
์ ์ผ๋ก list์ ์ถ๊ฐSystem.out.println(list.size() + "<-- list.size()");
: ๋๋ฒ๊น
์ฝ๋, ArrayList๋ length๊ฐ ์๋ size์ด๋ค.for(Pirate p : list)
: ํ
์ด๋ธ ์์ฑ์ ์ํ ์ ์ฒด foreach๋ฌธ if(p.hobby != null)
: hobby์ ์
๋ ฅ๊ฐ์ด null์ด ์๋ ๋๋ง for๋ฌธ ์คํํ๊ธฐint cnt = 1;
: ์ทจ๋ฏธ ์ถ๋ ฅ์ ์ฌ์ด์ฌ์ด์ ์ผํ(,)๋ฅผ ๋ฃ๊ธฐ ์ํ ์นด์ดํธ ๋ณ์ ์์ฑfor(String h : p.hobby)
: hobby ์
๋ ฅ์ ์ํ foreach๋ฌธif(cnt<p.hobby.size())
: ์นด์ดํธ ๋ณ์๊ฐ hobby์ size๋ณด๋ค ์์ ๋๊น์ง๋ง ์ผํ(,) ์
๋ ฅ, ๋งจ ๋ง์ง๋ง ๊ฐ ๋ค์๋ ์ผํ๊ฐ ๋ถ์ผ๋ฉด ์๋๋ฏ๋ก!cnt = cnt + 1;
: ์นด์ดํธ ๋ณ์๋ 1์ฉ ์ฆ๊ฐํด์ผ ํ๋ฏ๋ก foreach๋ฌธ ๋ง์ง๋ง์ ์
๋ ฅ๐ ๊ฒฐ๊ณผ
form action ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์์กฐ๊ฑด(์ฑ๋ณ)์ ๋ฐ๋ผ ํํฐ๋ง ์ด ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ์ถ๊ฐํด๋ณด์๋ค.
๐ ์์ฑ (๊ธฐ์กด ์์ฑ ํ์ผ์ ์ถ๊ฐ)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="onepiece.Pirate" %>
<%@ page import="java.util.ArrayList" %>
<%
// RDBMS(์ค๋ผํด,mysql(mariadb),mssql) ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์์
// ์ฝ๋์์์ ์ฌ์ฉ ๊ฐ๋ฅํ ํํ๋ก (ArrayList<Pirate>) ๋ก ๋ณ๊ฒฝํ ์ ์์ผ๋
// ์ฐ๋ฆฌ๋ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ๋ ๊ฒ
%>
<%
ArrayList<Pirate> list = new ArrayList<Pirate>(); // ๋ฐฐ์ด
// Pirat ๊ฐ์ฒด๋ฅผ 20๊ฐ ์์ฑ
// 1)
Pirate p1 = new Pirate(); // ํด๋์ค
p1.name = "๋ชฝํค D. ๋ฃจํผ";
p1.nickName = "๋ฐ์ง๋ชจ์";
p1.gender = 'M';
p1.birth = "5์ 5์ผ";
p1.age = 19;
p1.height = 174;
p1.hobby = new ArrayList<String>(); // ๋ฐฐ์ด ์์ฑ
p1.hobby.add("๋ชจํ"); // ์ทจ๋ฏธ ์ถ๊ฐ
p1.hobby.add("์์น");
p1.blood = "Fํ";
p1.country = "์ด์คํธ ๋ธ๋ฃจ ๊ณ ์ ์๊ตญ ํ์ค ๋ง์";
p1.money = 3000000000L;
p1.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p1.isDevilFruit = true;
list.add(p1); // ๋ฐฐ์ด์ ์ถ๊ฐ
Pirate p2 = new Pirate();
p2.name = "๋กค๋ก๋
ธ์ ์กฐ๋ก";
p2.nickName = "ํด์ ์ฌ๋ฅ๊พผ";
p2.gender = 'M';
p2.birth = "11์ 11์ผ";
p2.age = 21;
p2.height = 181;
p2.hobby = new ArrayList<String>();
p2.hobby.add("์์ฃผ");
p2.hobby.add("์ํ");
p2.blood = "XFํ";
p2.country = "์ด์คํธ ๋ธ๋ฃจ ์๋ชจ์ธ ํค ๋ง์";
p2.money = 1111000000L;
p2.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p2.isDevilFruit = false;
list.add(p2);
Pirate p3 = new Pirate();
p3.name = "๋๋ฏธ";
p3.nickName = "๋๋๊ณ ์์ด";
p3.gender = 'F';
p3.birth = "7์ 3์ผ";
p3.age = 20;
p3.height = 170;
p3.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p3.blood = "Xํ";
p3.country = "์ด์คํธ ๋ธ๋ฃจ ์ค์ด์ฝํธ ์๊ตญ";
p3.money = 366000000L;
p3.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p3.isDevilFruit = false;
list.add(p3);
Pirate p4 = new Pirate();
p4.name = "์ฐ์";
p4.nickName = "๊ฐ(GOD)";
p4.gender = 'M';
p4.birth = "4์ 1์ผ";
p4.age = 19;
p4.height = 176;
p4.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p4.blood = "Sํ";
p4.country = "์ด์คํธ ๋ธ๋ฃจ ์๋กญ ๋ง์";
p4.money = 500000000L;
p4.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p4.isDevilFruit = false;
list.add(p4);
Pirate p5 = new Pirate();
p5.name = "์๋";
p5.nickName = "๊ฒ์ ๋ค๋ฆฌ";
p5.gender = 'M';
p5.birth = "3์ 2์ผ";
p5.age = 21;
p5.height = 180;
p5.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p5.blood = "Rh- Sํ";
p5.country = "๋
ธ์ค ๋ธ๋ฃจ ์ ๋ฅด๋ง ์๊ตญ";
p5.money = 1032000000L;
p5.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p5.isDevilFruit = false;
list.add(p5);
Pirate p6 = new Pirate();
p6.name = "ํ ๋ํ ๋ ์ตธํ";
p6.nickName = "์์ฌํ๊ด";
p6.gender = 'M';
p6.birth = "12์ 24์ผ";
p6.age = 17;
p6.height = 90;
p6.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p6.blood = "Xํ";
p6.country = "์๋ํ ํญ๋ก ์ฌ์ฟ ๋ผ ์๊ตญ(๊ตฌ ๋๋ผ ์๊ตญ)";
p6.money = 1000L;
p6.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p6.isDevilFruit = true;
list.add(p6);
Pirate p7 = new Pirate();
p7.name = "๋์ฝ ๋ก๋น";
p7.nickName = "์
๋ง์ ์์ด";
p7.gender = 'F';
p7.birth = "2์ 6์ผ";
p7.age = 30;
p7.height = 188;
p7.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p7.blood = "Sํ";
p7.country = "์จ์คํธ ๋ธ๋ฃจ ์คํ๋ผ";
p7.money = 930000000L;
p7.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p7.isDevilFruit = true;
list.add(p7);
Pirate p8 = new Pirate();
p8.name = "์ปคํฐ ํ๋";
p8.nickName = "ํ๋ํค";
p8.gender = 'M';
p8.birth = "3์ 9์ผ";
p8.age = 36;
p8.height = 240;
p8.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p8.blood = "XFํ";
p8.country = "์ฌ์ฐ์ค ๋ธ๋ฃจ";
p8.money = 394000000L;
p8.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p8.isDevilFruit = false;
list.add(p8);
Pirate p9 = new Pirate();
p9.name = "๋ธ๋ฃฉ";
p9.nickName = "์์ธ ํน";
p9.gender = 'M';
p9.birth = "4์ 3์ผ";
p9.age = 90;
p9.height = 277;
p9.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p9.blood = "Xํ";
p9.country = "์จ์คํธ ๋ธ๋ฃจ";
p9.money = 383000000L;
p9.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p9.isDevilFruit = true;
list.add(p9);
Pirate p10 = new Pirate();
p10.name = "์ง๋ฒ ";
p10.nickName = "๋ฐ๋ค์ ํ๊ฐ";
p10.gender = 'M';
p10.birth = "4์ 2์ผ";
p10.age = 46;
p10.height = 301;
p10.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p10.blood = "Fํ";
p10.country = "์ฉ๊ถ ์๊ตญ ์ด์ธ๊ฐ";
p10.money = 1100000000L;
p10.group = "๋ฐ์ง๋ชจ์ ์ผ๋น";
p10.isDevilFruit = false;
list.add(p10);
Pirate p11 = new Pirate();
p11.name = "์๋์๋ ๋ด๊ฒ์ดํธ";
p11.nickName = "ํฐ ์์ผ";
p11.gender = 'M';
p11.birth = "4์ 6์ผ";
p11.age = 72;
p11.height = 666;
p11.hobby = new ArrayList<String>();
p11.hobby.add("์ ๊ธ");
p11.blood = "Fํ";
p11.country = "์ ์ธ๊ณ ์คํํฌ์ค";
p11.money = 5046000000L;
p11.group = "ํฐ ์์ผ ํด์ ๋จ";
p11.isDevilFruit = true;
list.add(p11);
Pirate p12 = new Pirate();
p12.name = "์นด์ด๋";
p12.nickName = "๋ฐฑ์";
p12.gender = 'M';
p12.birth = "5์ 1์ผ";
p12.age = 59;
p12.height = 710;
p12.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p12.blood = "Fํ";
p12.country = "์๋ํ ํญ๋ก ๋ณด๋์นด ์๊ตญ";
p12.money = 4611100000L;
p12.group = "๋ฐฑ์ ํด์ ๋จ";
p12.isDevilFruit = true;
list.add(p12);
Pirate p13 = new Pirate();
p13.name = "์ฌ๋กฏ ๋ง๋ง";
p13.nickName = "๋น
๋ง";
p13.gender = 'F';
p13.birth = "2์ 15์ผ";
p13.age = 68;
p13.height = 880;
p13.hobby = new ArrayList<String>();
p13.hobby.add("๋ค๊ณผํ");
p13.hobby.add("์ง๊ทํ ๋๋ฌผ ์์ง");
p13.blood = "Xํ";
p13.country = "์๋ํ ํญ๋ก";
p13.money = 4388000000L;
p13.group = "๋น
๋ง ํด์ ๋จ";
p13.isDevilFruit = true;
list.add(p13);
Pirate p14 = new Pirate();
p14.name = "์นํฌ์ค";
p14.nickName = "๋นจ๊ฐ ๋จธ๋ฆฌ";
p14.gender = 'M';
p14.birth = "3์ 9์ผ";
p14.age = 39;
p14.height = 199;
p14.hobby = new ArrayList<String>();
p14.hobby.add("๋ฐฉ๋");
p14.blood = "XFํ";
p14.country = "์จ์คํธ ๋ธ๋ฃจ ๊ฐ๋ฐธ๋ฆฌ";
p14.money = 4048900000L;
p14.group = "๋นจ๊ฐ ๋จธ๋ฆฌ ํด์ ๋จ";
p14.isDevilFruit = false;
list.add(p14);
Pirate p15 = new Pirate();
p15.name = "๋ง์ฌ D ํฐ์น";
p15.nickName = "๊ฒ์ ์์ผ";
p15.gender = 'M';
p15.birth = "8์ 3์ผ";
p15.age = 40;
p15.height = 344;
p15.hobby = new ArrayList<String>();
p15.hobby.add("๋๋ฐ(๊ฒ๋ธ๋ง)");
p15.hobby.add("์ญ์ฌ ํ๊ตฌ");
p15.blood = "Fํ";
p15.country = "์๋ํ ํญ๋ก";
p15.money = 3996000000L;
p15.group = "๊ฒ์ ์์ผ ํด์ ๋จ";
p15.isDevilFruit = true;
list.add(p15);
Pirate p16 = new Pirate();
p16.name = "ํธ๋ผํ๊ฐ D ์จํ
๋ก";
p16.nickName = "์ฃฝ์์ ์ธ๊ณผ์";
p16.gender = 'M';
p16.birth = "10์ 6์ผ";
p16.age = 26;
p16.height = 191;
p16.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p16.blood = "Fํ";
p16.country = "๋
ธ์ค ๋ธ๋ฃจ ํ๋ ๋ฐ์ค";
p16.money = 3000000000L;
p16.group = "ํํธ ํด์ ๋จ";
p16.isDevilFruit = true;
list.add(p16);
Pirate p17 = new Pirate();
p17.name = "๋ฒ๊ธฐ";
p17.nickName = "์ฒ๋ฅ๊ด๋";
p17.gender = 'M';
p17.birth = "8์ 8์ผ";
p17.age = 39;
p17.height = 192;
p17.hobby = new ArrayList<String>();
p17.hobby.add("๋ณด๋ฌผ์ง๋ ๋ชจ์ผ๊ธฐ");
p17.blood = "Fํ";
p17.country = "์๋ํ ํญ๋ก";
p17.money = 3189000000L;
p17.group = "ํฌ๋ก์ค ๊ธธ๋";
p17.isDevilFruit = true;
list.add(p17);
Pirate p18 = new Pirate();
p18.name = "๋ง๋ฅด์ฝ";
p18.nickName = "๋ถ์ฌ์กฐ";
p18.gender = 'M';
p18.birth = "10์ 5์ผ";
p18.age = 45;
p18.height = 203;
p18.hobby = new ArrayList<String>();
p18.hobby.add("๋ฐ์ ์ฝ์คํฐ ์์ง");
p18.blood = "Xํ";
p18.country = "์๋ํ ํญ๋ก";
p18.money = 1374000000L;
p18.group = "์คํํฌ์ค";
p18.isDevilFruit = true;
list.add(p18);
Pirate p19 = new Pirate();
p19.name = "์ฅฌ๋ผํด ๋ฏธํธํฌ";
p19.nickName = "๋งค์ ๋";
p19.gender = 'M';
p19.birth = "3์ 9์ผ";
p19.age = 43;
p19.height = 198;
p19.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p19.blood = "Sํ";
p19.country = "";
p19.money = 3590000000L;
p19.group = "ํฌ๋ก์ค ๊ธธ๋";
p19.isDevilFruit = false;
list.add(p19);
Pirate p20 = new Pirate();
p20.name = "๊ณจ D ์์ด์ค";
p20.nickName = "๋ถ์ฃผ๋จน";
p20.gender = 'M';
p20.birth = "1์ 1์ผ";
p20.age = 20;
p20.height = 185;
p20.hobby = null; // ์ทจ๋ฏธ๊ฐ ์์
p20.blood = "Sํ";
p20.country = "์ฌ์ฐ์ค ๋ธ๋ฃจ ๋ฐํ
๋ฆฌ๋ผ";
p20.money = 550000000L;
p20.group = "ํฐ ์์ผ ํด์ ๋จ";
p20.isDevilFruit = true;
list.add(p20);
System.out.println(list.size() + "<-- list.size()"); // 20
// ๋๋ฒ๊น
์ฝ๋, 20๊ฐ๊ฐ ์์ฑ์ด ์ ๋๋์ง
// ๊ฒ์์กฐ๊ฑด์ ๋ฐ๋ผ ํํฐ๋ง๋ list2๋ฅผ ์์ฑ
ArrayList<Pirate> list2 = new ArrayList<Pirate>();
char gender = ' ';
if(request.getParameter("gender") != null) { // ์ฆ, ์ด๋ค ๊ฐ์ form์์ ์ ํํ๋ค๋ฉด
gender = request.getParameter("gender").charAt(0); // option์์ ๋ฐ์์ค๋ ๊ฐ์ด string ํ์
์ด๋ฏ๋ก ์์ ์ฒซ ๊ธ์๋ฅผ ๊ฐ์ ธ์์ charํ์
์ผ๋ก ๋ฐ๊พธ๋ ๋ฉ์๋ ์ฌ์ฉ
} // form์์ ์ ํํ ๊ฐ์ด๋๊น request.getParameter๋ก ๋ถ๋ฌ์์ gender ๋ณ์์ M or F ๋ฃ๊ธฐ
// gender๋ ' ' or 'M' or 'F'
/*
if(gender == ' ') {
list2 = list;
} else if(gender == 'M') {
for(Pirate p : list) {
if(p.gender == 'M') {
list2.add(p);
}
}
} else { // gender == 'F'
for(Pirate p : list) {
if(p.gender == 'F') {
list2.add(p);
}
}
}
*/
if(gender == ' ') {
list2 = list;
} else {
for(Pirate p : list) {
if(p.gender == gender) {
list2.add(p);
}
}
}
System.out.println(list2.size() + "<-- list2.size()");
// ๋๋ฒ๊น
์ฝ๋
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>onepiece.jsp</title>
<style>
table, th, td {border: 1px solid #000000; text-align: center;}
table {border-collapse: collapse;}
.small {width: 30px; height: 30px;}
</style>
</head>
<body>
<h1>๋ฑ์ฅ์ธ๋ฌผ ๋ฆฌ์คํธ</h1>
<h3>
<div>
์ ์ฒด <%=list.size()%>๋ช
<!-- ๋ฐฐ์ด์ ์ ์ฒด ์ฌ์ด์ฆ ์ถ๋ ฅ -->
</div>
</h3>
<form action="./onepiece.jsp" method="post"> <!-- ๋ฐ์ดํฐ ํํฐ๋ง ํ๊ธฐ -->
<select name="gender">
<option value="M">๋จ์</option>
<option value="F">์ฌ์</option>
</select>
<div>
<button type="submit">๊ฒ์</button>
</div>
</form>
<table>
<tr>
<th>์ด๋ฆ</th>
<th>๋ณ๋ช
</th>
<th>์ฑ๋ณ</th>
<th>์์ผ</th>
<th>๋์ด</th>
<th>ํค</th>
<th>์ทจ๋ฏธ</th>
<th>ํ์กํ</th>
<th>์ถ์ ์ง</th>
<th>ํ์๊ธ</th>
<th>์์</th>
<th>์
๋ง์ ์ด๋งค</th>
</tr>
<%
for(Pirate p : list2) { // ํํฐ๋ง ๋ list2 ์ถ๋ ฅ
%>
<tr>
<td><%=p.name%></td>
<td><%=p.nickName%></td>
<td>
<%
if(p.gender == 'M') {
%>
<img class="small" src="./img/man.jpg">
<%
} else {
%>
<img class="small" src="./img/woman.jpg">
<%
}
%>
</td>
<td><%=p.birth%></td>
<td><%=p.age%>์ธ</td>
<td><%=p.height%>cm</td>
<td>
<%
if(p.hobby != null){ // ์ทจ๋ฏธ์ ๊ฐ์ด ์์ ๋๋ง foreach๋ฌธ ์คํ
int cnt = 1; // foreach๋ฌธ ๋ฐ์์ ๋ณ์ ์์ฑ
for(String h : p.hobby) {
%>
<%=h%>
<%
if(cnt<p.hobby.size()) { // ์ทจ๋ฏธ ์ฌ์ด์ฌ์ด์ ์ผํ(,) ์
๋ ฅ
%>
,
<%
}
cnt = cnt + 1; // ๋ง์ง๋ง์ ์ผํ(,)๊ฐ ์๋์ค๋๋ก
}
}
%>
</td>
<td><%=p.blood%></td>
<td><%=p.country%></td>
<td><%=p.money%>๋ฒ ๋ฆฌ</td>
<td><%=p.group%></td>
<td>
<%
if(p.isDevilFruit == true) {
%>
<img class="small" src="./img/fruit_o.jpg">
<%
} else {
%>
<img class="small" src="./img/fruit_x.jpg">
<%
}
%>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
"./onepiece.jsp"
)๋ก ์ง์ ArrayList<Pirate> list2 = new ArrayList<Pirate>();
: ๊ฒ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ถ๋ ฅ๋ list2๋ฅผ ๋ฐ๋ก ์์ฑํ๋ค.char gender = ' ';
: Pirate ํด๋์ค์ gender ํ์
์ char ํ์
์ด๋ฏ๋ก ๋์ผํ ํ์
์ ๋ณ์ ์์ฑ, char ํ์
์ null์ ์
๋ ฅํ์ง ๋ชปํ๋ฏ๋ก ๊ณต๋ฐฑ ์ผ๋ก ์
๋ ฅ.if(request.getParameter("gender") != null)
: form action ํ๊ทธ์์ ๊ฐ์ด ์
๋ ฅ๋์๋์ง (์ ํ๋์๋์ง) , ์ด๋ ๋ฐ์์ค๊ฒ๋ option์ value๊ฐ์ "M" ๋๋ "F" ์ด๋ฉฐ, ํ์
์ String ํ์
์ด ๋๋ค.charAt(0)
: String ํ์
์ ๊ฐ์์ ์ฒซ๋ฒ์งธ(0๋ฒ์งธ) ๊ธ์๋ฅผ ๊ฐ์ ธ์์ char ํ์
์ผ๋ก ๋ฐ๊พธ๋ ๋ฉ์๋for(Pirate p : list2)
๋ก ์์ .๐ ๊ฒฐ๊ณผ
์ฑ๋ณ ์ ํ select ํ๊ทธ๊ฐ ์ถ๊ฐ๋์๋ค.
์ฌ์ ์ ํ ์ ์ถ๋ ฅ ํ๋ฉด
๋จ์ ์ ํ ์ ์ถ๋ ฅ ํ๋ฉด
๊ธฐ์กด์ ๋ฐฐ์ ๋ Internal ๋ฐฉ์ (ํด๋์ค๋ id๋ฅผ ์ด์ฉํ์ฌ styleํ๊ทธ์์ ์ ์ฉ)๊ณผ Inline ๋ฐฉ์ (htmlํ๊ทธ์ ์ง์ ์ ์ฉ) ์ธ์ ๋๋ค๋ฅธ ๋ฐฉ๋ฒ์ธ External ๋ฐฉ์์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ์ถ๊ฐ๋ก ๋ฐฐ์ ๋ค.
๋ง๊ทธ๋๋ก css ํ์ผ์ ๋ฐ๋ก ์์ฑํ์ฌ ์ ์ฉ์ํค๋ ๋ฐฉ์์ด๋ค.
๐ง์ฐธ๊ณ ํ๋ฉด ์ข์ ๋งํฌ
๐ css ํ์ผ ์์ฑ - myStyle.css
@charset "UTF-8";
.x {color: #00FF00;}
table, th, td {border: 1px solid #000000; text-align: center;}
table {border-collapse: collapse;}
๐ ์ ์ฉํ๊ธฐ
<link rel="stylesheet" href="./myStyle.css">
๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ง๋ css ํ์ผ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. href ๋งํฌ์๋ ์ธ๋ถ๋งํฌ๋ ์
๋ ฅ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ถํธ์คํธ๋ฉ5๋ฅผ ์ ๊ทน ํ์ฉํ๋ฉด ๋ค์ฑ๋ก์ด css๋ฅผ ํธํ๊ฒ ์ ์ฉํ ์ ์๋ค!
๐ง์ฐธ๊ณ ํ๋ฉด ์ข์ ๋งํฌ
๐ ๋งํฌ ๊ฐ์ ธ์ค๊ธฐ
<!-- Latest compiled and minified CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Latest compiled JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
๐ ์ฌ์ฉํด๋ณด๊ธฐ
<body>
<div class="container-fluid">
<!-- bodyํ๊ทธ์ ์ง์ class๋ฅผ ์ฃผ๋ ๊ฒ์ ์ํํด์ div๋ก ์ ์ฒด๋ฅผ ๋ฌถ์ -->
<table class="table table-striped table-dark">
<!-- class๋ช
์ฌ๋ฌ๊ฐ ์ถ๊ฐํ ๋ ๋น์นธ -->
<thead>
<tr>
<th>์ด๋ฆ</th>
<th>์ฑ๋ณ</th>
<th>๋์ด</th>
</tr>
</thead>
<tbody>
<%
for(Person p : list) {
%>
<tr>
<td><%=p.name%></td>
<td><%=p.gender%></td>
<td><%=p.age%></td>
</tr>
<%
}
%>
</tbody>
</table>
<div class="row">
<div class="col-sm-6">
<h1>์ฒซ๋ฒ์งธ ์ ๋ชฉ</h1>
<table class="table table-hover">
<tr>
<td>์๋
</td>
<td>ํ์ธ์</td>
<td>์๋
</td>
</tr>
<tr>
<td>์๋
</td>
<td>ํ์ธ์</td>
<td>์๋
</td>
</tr>
</table>
</div>
<div class="col-sm-6">
<h1>๋๋ฒ์งธ ์ ๋ชฉ</h1>
<table class="table table-hover">
<tr>
<td>์๋
</td>
<td>ํ์ธ์</td>
<td>์๋
</td>
</tr>
<tr>
<td>์๋
</td>
<td>ํ์ธ์</td>
<td>์๋
</td>
</tr>
<tr>
<td>์๋
</td>
<td>ํ์ธ์</td>
<td>์๋
</td>
</tr>
</table>
</div>
</div>
๐ ๊ฒฐ๊ณผ