1. Array (배열)
길이가 고정된 경우, 배열을 사용하는 것을 추천합니다.
public class growing_test{
public static void main(String []args){
int[] odds = {1, 3, 5, 7, 9};
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
for (int i=0; i<weeks.length; i++) {
System.out.println(weeks[i]);
}
String[] weeks2 = new String[7];
weeks2[0] = "월";
weeks2[1] = "화";
weeks2[2] = "수";
weeks2[3] = "목";
weeks2[4] = "금";
weeks2[5] = "토";
weeks2[6] = "일";
for (int i=0; i<weeks2.length; i++) {
System.out.println(weeks2[i]);
}
}
}
추가팁 : java.lang.ArrayIndexOutOfBoundsException
weeks.length+1 루프로 for문을 돌리는 것처럼 돌려보면 아래와 유사한 에러가 발생합니다. 이 에러는 흔하게 만나게 되는 에러로, 배열의 길이를 넘어서는 값에 대해 작업을 시도하면 발생합니다.
java.lang.ArrayIndexOutOfBoundsException
2. List (리스트)
배열과 유사하지만, 명확한 크기를 알 수 없는 경우 즉 동적으로 자료형의 개수가 변하는 상황에서는 List를 사용하는 것을 추천합니다.
import java.util.ArrayList;
public class growing_test{
public static void main(String []args){
ArrayList pitches = new ArrayList();
pitches.add("138");
pitches.add("129");
pitches.add("142");
System.out.println(pitches);
pitches.add(0, "133");
pitches.add(2, "133");
System.out.println(pitches);
System.out.println(pitches.get(1));
System.out.println(pitches.size());
System.out.println(pitches.contains("142"));
System.out.println(pitches.contains("99"));
System.out.println(pitches.remove("133"));
System.out.println(pitches);
System.out.println(pitches.remove(2));
System.out.println(pitches);
}
}
3. Generics (제네릭스)
아래는 제네릭스를 사용하지 않은 코드입니다.
제네릭스를 사용하지 않을 경우, String과 같은 자료형이 아니라 Obkect 자료형으로 인식시키므로, 이후에 사용할 때 자료형을 별도로 선언해줘야합니다.
import java.util.ArrayList;
public class growing_test{
public static void main(String []args){
ArrayList aList = new ArrayList();
aList.add("hello");
aList.add("java");
// Object를 String으로 캐스팅함
String hello = (String) aList.get(0);
String java = (String) aList.get(1);
System.out.println(hello);
System.out.println(java);
}
}
아래는 제네릭스를 사용한 코드입니다.
import java.util.ArrayList;
public class growing_test{
public static void main(String []args){
ArrayList<String> aList = new ArrayList<String>();
aList.add("hello");
aList.add("java");
String hello = aList.get(0);
String java = aList.get(1);
System.out.println(hello);
System.out.println(java);
}
}
위에서 볼 수 있듯이, 제네릭스를 사용하면 처음 선언시에 Object 자료형으로 인식되도록 작성하는 것이 아니라 String으로 인식되도록 작성해주고, 이후에 이를 받아 사용할 때에는 별도로 String 캐스팅을 하지 않아도 가져다 쓰는 데에 문제가 없습니다.
예시에서는 <String>을 사용했으나 <Integer>, <Animal>, <Dog> 등 어떤 자료형에도 사용할 수 있습니다.
제네릭스를 사용하면 형변환에 의한 불필요한 코딩, 잘못된 형변환에 의한 런타임 오류 등에서 벗어날 수 있습니다.
제네릭스 사용하는 것을 강력 추천합니다.
4. Map (맵)
아래 예제에서의 HashMap의 제네릭스는 Key, Value 모두 String 타입이므로 String으로 설정해줍니다.
import java.util.HashMap;
public class growing_test{
public static void main(String []args){
HashMap<String, String> map_sample = new HashMap<String, String>();
map_sample.put("people", "사람");
map_sample.put("baseball", "야구");
System.out.println(map_sample);
}
}
정수의 경우 Integer로 사용할 수도 있습니다.
import java.util.HashMap;
public class growing_test{
public static void main(String []args){
HashMap<String, Integer> map_sample = new HashMap<String, Integer>();
map_sample.put("One", 1);
map_sample.put("Two", 2);
System.out.println(map_sample);
}
}
get, containsKey, remove, size 활용 예시
import java.util.HashMap;
public class growing_test{
public static void main(String []args){
HashMap<String, String> map_sample = new HashMap<String, String>();
map_sample.put("people", "사람");
map_sample.put("baseball", "야구");
// people의 value값 출력
System.out.println(map_sample.get("people"));
// 포함여부확인 : 포함한 Key 입력
System.out.println(map_sample.containsKey("baseball"));
// 포함여부확인 : 포함하지 않은 Key 입력
System.out.println(map_sample.containsKey("soccer"));
// Key값이 people인 아이템 삭제, 삭제된 아이템의 Key값 출력
System.out.println(map_sample.remove("people"));
// map_sample의 크기 출력
System.out.println(map_sample.size());
}
}
'Development > Java' 카테고리의 다른 글
[Java11][Tutorial] 간단한 코드 짜보기 - 5 : 클래스, 메소드 (0) | 2020.02.02 |
---|---|
[Java11][Tutorial] 간단한 코드 짜보기 - 4 : 제어문, 조건문 (0) | 2020.01.28 |
[Java11][Tutorial] 간단한 코드 짜보기 - 2 : String 관련 함수 & StringBuffer (0) | 2020.01.26 |
[Java11][Tutorial] 간단한 코드 짜보기 - 1 : 각종 자료형 체험하기 (0) | 2020.01.25 |
[java-11] yum install jdk, yum install java (0) | 2020.01.24 |