오늘 공부한 내용
ArrayList 사용법.
1. 선언
ArrayList list = new ArrayList();//타입 미설정 Object로 선언된다.
ArrayList<Student> members = new ArrayList<Student>();//타입설정 Student객체만 사용가능하다
ArrayList<Integer> num = new ArrayList<Integer>();//타입설정 int타입만 사용가능 하다
ArrayList<Integer> num2 = new ArrayList<>();//new에서 타입 파라미터 생략가능하다
ArrayList<Integer> num3 = new ArrayList<Integer>(10);//초기 용량(capacity)지정해준다.
ArrayList<Integer> list2 = new ArrayList<Integer>(Arrays.asList(1,2,3));//생성시 값을 추가한다.
선언된 배열의 타입이 모든 객체의 최고조상인 Object이기 때문에 모든 종류의 객체를 담을 수 있다.
2. 값을 추가하는 add() 메서드.
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(5); //값 추가
list.add(null); //null값도 add가능
list.add(3,10); //index 1에 10 삽입
index 값을 생략하면 ArrayList 맨 뒤에 데이터가 추가되고, index 중간에 값을 추가하면 해당 인덱스부터 마지막 인덱스 까지 모두 1씩 뒤로 밀려난다.
해당 인덱스부터 마지막인덱스까지 모두 데이터가 밀려나게되면 데이터가 많아지면 많아질수록 성능이 느려질 수 있기 때문에, 이럴경우에는 LinkedList를 활용하는것이 좋다.
3.리스트의 값을 삭제하는 remove()메소드
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
list.remove(1); //index 1 제거
list.clear(); //모든 값 제거
remove()함수를 사용하여 특정 인덱스의 객체를 제거하면 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨진다. 모든 값을 제거하려면 clear()메소드를 사용하면 된다.
4.리스트의 길이를 알려주는 size()메소드
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.size()); //list 크기 : 3
5.리스트의 값을 가져오는 get() 메서드
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.get(0));//0번째 index 출력
for(Integer i : list) { //for문을 통한 전체출력
System.out.println(i);
}
Iterator iter = list.iterator(); //Iterator 선언
while(iter.hasNext()){//다음값이 있는지 체크
System.out.println(iter.next()); //값 출력
}
6.리스트 안의 값을 찾는 cintains() 메서드.
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.contains(1)); //list에 1이 있는지 검색 : true
System.out.println(list.indexOf(1)); //1이 있는 index반환 없으면 -1
contains()메서드를 사용했을 때, 만약 값이 있다면 true가 리턴되고, 값이 없다면 false가 리턴된다.
https://coding-factory.tistory.com/551
더 공부할 내용
ArrayList와 LinkedList와의 차이점이 무엇일까?
HashMap에서도 더 알아보자
느낀점
미니프로젝트가 시작되어서 점점 개인공부하는 시간이 줄어드는 것 같다..
그래도 자바공부는 손에 안놓고 싶은데.. 인터페이스,예외처리 부분부터 뒷 부분에 대한 개념이 너무 부족하다..
컬렉션 프레임웍이라던지 쓰레드 람다 네트워킹같은..
곧 있으면 스프링강의도 듣게될텐데.. 밥먹는 시간이라도 좀 줄여서라도 개인공부를 더 해야겠다..
조금씩 실력이 늘고 있는것 같기는 한데.. 성에 차지 않아.. 더 확확 실력이 늘었으면 좋겠어...! 나는 아직도 목마르다..
더 많이 알고 능숙하게 자바라는 언어를 사용하고 싶다
'Practice > Java' 카테고리의 다른 글
| 스프링) @Transactional 정리 (0) | 2022.12.19 |
|---|---|
| 스프링 코드 분석) 메모장 만들기 프로그램 (2) | 2022.12.08 |
| JDK,JRE,JVM 자바 프로그램의 구동 원리. (0) | 2022.12.01 |
| 기초 자바 개념정리: 접근 제어자 와 캡슐화 (0) | 2022.11.19 |
| 기초 자바 개념정리: 클래스 (1) | 2022.11.09 |