자바 컬렉션 프레임 워크 Collection Framework API 란, 자바에서 제공하는 데이터 구조인 컬렉션 collection을 표현하는 인터페이스와 클래스의 모음(API)이다
Wrapper 란,
기본 자료형을 객체로 바꿔준다. 왜 바꿔야할까?
컬렉션 프레임 워크는 객체 자료형을 사용하기 때문에 기본 자료형을 사용할 수 없다.
앞문자만 대문자로 쓰면 된다
int a = 10; //기본 자료형
-> Interger a = 10; Integer a = new Integer(10); // 둘 다 사용 가능, 객체라 new를 사용한다. auto boxing
sout(a.intValue()); //unboxing
Integer b =10; //auto boxing
int bb = b; // auto unboxing. 포장 해제.
public class WrapperTest {
public static void main(String[] args) {
// int a = 10; 기본 자료형
//Integer a = new Integer(10); //사용자 자료형, 객체라 new 사용
Integer a =10; //이것도 가능하다. auto boxing
System.out.println(a.intValue()); //unboxing
Integer b = 20; //integer로 들어갈 떈 포장auto boxing
int bb =b; //auto unboxing 포장 해제
float f = 23.3f;
Float f2 = 44.4f; //new Float(); 이것을 auto boxing
System.out.println(f2.floatValue());
Float f3 = 33.3f;
float f4 = f3; // f3.floatValue() 내부에서 발생 -> auto boxing
System.out.println(f4);
System.out.println(f3.floatValue());
}
}
숫자와 문자열의 상호 변환
public class IntegerStringTest {
public static void main(String[] args) {
String str ="123";
String str2 = "123";
System.out.println(str+str2); //123123 덧셈이 아니라 결합
int num = Integer.parseInt(str) +Integer.parseInt(str2);
System.out.println(num);
int su = 123;
int su2 = 123;
//su1+su2 = 246
System.out.println(su+ su2);
String sum= String.valueOf(su) +String.valueOf(su2);
System.out.println(sum);
String sum2 = su+""+su;
System.out.println(sum2);
}
}
숫자형 문자를 정수형으로 변환하려면 -> Integer.parseInt()
String a = "123";
int aa = Integer.parseint(a);
정수를 문자열로 변환하려면 -> String.value(); or " " + num
int num =123;
String numString = String.value(num);
String numString2 = "" + num;
Collection Framework API
순서가 있고 중복이 가능한
ListAPI
public class MovieListExample {
public static void main(String[] args) {
ArrayList<MovieDTO> movie = new ArrayList<>();
movie.add(new MovieDTO("title1",200));
movie.add(new MovieDTO("2title",120));
for( MovieDTO m : movie){
System.out.println(m);
}
System.out.println();
String searchTitle = "title1"; //영화 제목 찾기
for( MovieDTO m : movie){
if( m.getTitle().equals(searchTitle)){
System.out.println(m.getTitle());
break;
}
}
}
}
ArrayList<Movie> movie = new ArrayList<>(); //객체 생성
movie.add(new Movie() ); //을 통해 데이터 넣음
foreach문을 통해 데이터를 출력
searchTitle을 통해 title1인 영화 제목을 찾는다.
MovieDTO m과 movie를 비교해가며
if 만약, m의 타이틀에( m.getTitle() ) serachTitle과 같은 제목이 있다면( .equals(searchTitle())
출력한다. sout (m.getTitle());
출력하고 탈출 break;
순서가 있고 중복이 불가능한 Set API : Hash Set
public class UniqueNumbers {
public static void main(String[] args) {
int[] numbers={1,2,3,4,5,6,7,1,2,9};
Set<Integer> uniqueNums = new HashSet<>();
for(int num : numbers){
uniqueNums.add(num);
}
System.out.println("unique numbers :");
for(int num : uniqueNums){
System.out.println(num);
}
}
}
중복없이 출력해준다 hashset
Key Value 로 관리하는 Map API
키는 중복이 안된다.
오토 박싱으로 인해 value 값이 바로 int로 들어간다.
get으로 조회한다.
System.out.println("Kim.s score: " + stdScores.get("Kim"));;
put은 두가지 기능이 있다. 있다면 수정, 없다면 추가
stdScores.put("Kim",96);
키 값만 모아지는 것이 entrySet(). 여기서 하나 꺼내기 -> entry<String, Integer>
-> map안에 있는 인터페이스이므로, map.entry<String, Integer> 이렇게 꺼내야 한다.
entry,getKey 와 getValue()로 값을 출력한
'JAVA > Bootcamp 자바' 카테고리의 다른 글
내가 만드는 API, 사용자 정의 자료형 배열 , Object Array (0) | 2024.03.14 |
---|---|
내가 만드는 API, int array (0) | 2024.03.14 |
직접 만들어 사용하는 Class, Gson, Json (0) | 2024.03.14 |
추상클래스와 인터페이스 (1) | 2024.03.13 |
최상위 클래스 Object (0) | 2024.03.13 |