- size가 고정되어 있다.
- 동일한 data type을 사용해야 한다.
무조건 객체형태로만 저장이 가능하다
ArrayList class, LinkedList class, . . .
- 사이즈가 동적이다.
- 서로 다른 data type이 가능하다.
HashMap class, HashSet class
- 자바스크립트 객체(JSON)와 형태가 같다.
- key - value 쌍으로 데이터를 저장한다.
String 사용 방법(2가지)
- " " 을 이용해서 문자열 생성하는 방법
String a = "Hello";
Heap 안에 String pool에 "Hello" 라는 문자열이 들어간다.
"Hello" 값을 가지는 변수는 String pool에 있는 같은 주소의 "Hello"를 가리킨다.
- new String("Hello"); 사용하는 방법
String b = new String("Hello");
Heap안의 string pool 밖에 생긴다.
따라서 위의 주소와는 다른 주소를 가진다.
package lecture0713;
public class Main {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
System.out.println(str1.equals(str3)); // true
// 왜?
// String 안에 있는 equals는 이미 오버라이딩 된 상태에서 제공해준다.
// 따라서 메모리 주소는 다르지만 내용이 같기 때문에 true가 반환된다.
// 문자열 내용을 비교할때는 당연히 equals() 사용
// 문자열 내용이 같은지 확인할 때 == 사용하지 않아요!
}
}
primitive data type | wrapper class |
---|---|
byte | Byte class |
short | Short class |
int | Integer class |
long | Long class |
float | Float class |
double | Double class |
character | Character class |
boolean | Boolean class |
package lecture0713;
import java.util.ArrayList;
import java.util.List;
class Student{
}
public class Main {
public static void main(String[] args) {
// 배열과 비슷하다
// 단, 동적으로 크기가 늘리거나 줄일 수 있다
// 저장은 무조건 객체형태로만 저장된다
List list = new ArrayList<>();
list.add("Hello");
list.add("홍길동");
list.add(100); // 3번째칸에 숫자(int 100)이 저장된거 같아 보여요 - 자동으로 객체화 시켜서 저장시켜줌
// list.add(new Integer(100));
list.add(new Student());
// List를 만들어서 사용
// 같은 데이터 타입을 이용하는 경우가 사실 대부분 - 타입명시
List<String> list1 = new ArrayList<String>();
list1.add("홍길동");
list1.add(100); // error
}
}
package lecture0713;
import java.util.HashMap;
import java.util.Map;
class Student{
}
public class Main {
public static void main(String[] args) {
// Map
Map map = new HashMap<>();
map.put("1", "홍길동");
map.put("2" , "Hello");
// Map generic
Map<String,String> map1 = new HashMap<String, String>();
map1.put("1", "홍길동1");
map1.put("2", "홍길동2");
// API reference를 참조해서 각 collection의 이용방법을 찾아서 써보아요
}
}