관리 메뉴

Frog is cry

컬렉션 프레임워크(Array List) 본문

JAVA/복습

컬렉션 프레임워크(Array List)

Frog is cry 2020. 7. 29. 19:39
package 컬렉션프레임워크.ex01;

import java.util.ArrayList;
import java.util.Collections;

import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;

/*
 * ArrayList
 * 컬렉션 클래스 중 가장 많이 사용되는 클래스.
 * 배열을 이용해서 값을 저장한다.
 * 
 * 인덱스를 이용해서 배열 요소에 빠르게 접근 가능하지만
 * 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존의 값들을 옮겨야 하므로 느리다.
 * 
 * 정적배열 : 크기가 고정되어있다.
 * 동적배열 : 크기가 고정되어있지 않다.
 * 
 * 배열 : 속도가 빠르지만 고정된 메모리 양으로 인해 나중에 늘릴 수 없다.
 * ArrayList : 메모리 양은 맘대로 늘리고 줄일 수 있으나, 배열보다 느리다.
 */

public class ArList {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<>();
		ArrayList<Integer> list2 = null;
		
		list.add(10);	//0
		list.add(20);	//1
		list.add(80);	//2
		list.add(90);	//3
		list.add(30);	//4
		list.add(50);	//5
		list.add(40);	//6
		
		list2 = new ArrayList<>(list.subList(2, 5));	// 2부터 5전까지 사용
		
		System.out.println(list);
		System.out.println(list2);
//		System.out.println(list.get(0));
//		System.out.println(list.get(1));
		System.out.println(list.size());
		
		System.out.println("정렬전 : " + list);
		Collections.sort(list);		// 숫자를 오름차순으로 뽑아준다.
		System.out.println("정렬후 : " + list);
		Collections.reverse(list);	// 숫자를 거꾸로 출력해주기떄문에
									// 오름차순 후에 사용해야 내림차순이 됨.
		System.out.println("내림차순 : " + list);		
		
		Collections.shuffle(list);	// 숫자를 섞어서 출력해준다.
		System.out.println("suffle:" + list);
		
		
		
	}
}
package 컬렉션프레임워크.ex01;

import java.util.ArrayList;

public class ArrList2 {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<>();
		//10~80까지의 값들을 10 20 30 ...
		//list에 add하기 for문 사용!
		
		for (int i = 1; i <= 8; i++) {
			list.add(10*i);
		}
		System.out.println(list);
		list.add(90);	
		System.out.println(list);	// 9칸짜리 배열이 새로 생성된 것을 출력
		//indexOf() : 값이 있으면 그 값이 들어있는 방번호를 준다. 값이 없으면 -1을 준다.
		int idx = list.indexOf(10);
		if(idx != -1) {
			list.add(idx+1, 15);	// idx +1자리에 값 15를 넣어줘.
		}else {
			list.add(0, 15);		// 그게아니라면 0번째방에 15를 넣어줘.
		}
		
		System.out.println(list);
		
		//실습 60을 600으로 바꾸기
//		list.set(6, 600);
		list.set(list.indexOf(60), 600);
		System.out.println(list);
		
		//실습 15 지우기!
//		list.remove(list.indexOf(15));
		list.remove(new Integer(15));
		System.out.println(list);
		System.out.println(list.size());
		
	}
}
package 컬렉션프레임워크.ex02;

import java.util.ArrayList;

public class Collection {
	public static void main(String[] args) {
		
		String[] arr = new String[2];
		arr[0] = "사과";
		arr[1] = "오렌지";
//		arr[2] = "배"; 에러
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
		
		System.out.println("=========");
		
		ArrayList<String> ar = new ArrayList<>();
		ar.add("사과");
		ar.add("오렌지");
		ar.add("배");
	
		for (int i = 0; i < ar.size() ; i++) {
//			String str = (String)ar.get(i); 
			String str = ar.get(i); 
//			System.out.println(ar.get(i));
			System.out.println(str) ;
		}
	
	}
	
	
}
package 컬렉션프레임워크.ex02;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

public class CollectionEx {

	public static void main(String[] args) {
		ArrayList<String> ar = new ArrayList<>();	
//		Collection<String> ar = new ArrayList<>();		
		ar.add("first");
		ar.add("second");
		ar.add("third");
		ar.add("third");
		System.out.println("ArrayList------");	
		// 순서o 중복o, index를 이용하게됨.
		// get을 이용해서 해당 인덱스를 접근해서 순서에 맞는 값을 가져올수 있음.
		
	
		Iterator ai = ar.iterator();
		
		while(ai.hasNext()) {	
			// 접근할 요소가 있는지 없는지 판별하는 메소드 : hasNext()
			// 읽어올 다음 요소가 있다면 true값 반환 요소가 없다면 false가 반환함
			System.out.println(ai.next());
		}
		
		HashSet<String> hs = new HashSet<>();
		hs.add("first");
		hs.add("second");
		hs.add("third");
		hs.add("third");
		
		Iterator ai2 = hs.iterator();
		
		System.out.println("HashSet------");	// SET : 집합
		// 순서x 중복x 
		// get이라는 메소드가 없음
		
		while(ai2.hasNext()) {
			System.out.println(ai2.next());
		}
		
		
		
		
		
	}
}

 

'JAVA > 복습' 카테고리의 다른 글

MVC모델(수정필요)  (0) 2020.07.29
컬렉션 프레임워크 (Hash)  (0) 2020.07.29
Set  (0) 2020.07.29
제네릭  (0) 2020.07.29
오브젝트  (0) 2020.07.29
Comments