// 배열 생성 int[] arr = {1,2,3,4,5}; System.out.println("arr = " + Arrays.toString(arr)); String[] arr2 = {"hello", "world", "java"}; System.out.println("arr2 = " + Arrays.toString(arr2));
Array[index]
를 사용하여 값에 접근할 수 있다.// 배열 생성과 할당 String[] weeks = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}; System.out.println("weeks = " + Arrays.toString(weeks)); String[] days = new String[7]; // 7개의 빈 문자열 배열 생성 System.out.println("days = " + Arrays.toString(days)); days[0] = "Mon"; days[1] = "Tue"; days[2] = "Wed"; days[3] = "Thu"; days[4] = "Fri"; days[5] = "Sat"; days[6] = "Sun"; System.out.println("days = " + Arrays.toString(days));
String[] weeks2 = new String[]; // Error String[] weeks2 = new String[5];
속성 | Array | ArrayList |
---|---|---|
크기(길이) | 고정 | 동적 |
타입 | 기본과 객체 | 객체만 |
메소드 | Indexing, length | get, size, add |
속도 | 빠름 | Array에 비해 느림 |
초기화 | 초기값을 지정하여 생성 | 요소를 추가하며 초기화 |
사용성 | 데이터의 추가,제거시 새로운 배열 생성 | 동적으로 추가,제거 가능 |
ArrayList에 data를 추가하기 위해서는 ArrayList.add(index,element)
를 사용하여 원하는 index에 값을 추가 할 수있다.
// Create ArrayList, add ArrayList menu = new ArrayList(); menu.add("pizza"); menu.add("hamburger"); // add: 맨끝에 추가 -> menu.add(menu.size(), "hotdog"); System.out.println(menu); menu.add(0,"chicken"); System.out.println("menu = " + menu); menu.add(1); System.out.println("menu = " + menu);
ArrayList는 기본적으로 서로 다른 type의 데이터들도 들어가고, 지정된 데이터의 type만 넣기 위해서는
ArrayList<Datatype>
을 사용하면 된다.
ArrayList<String> menu2 = new ArrayList<>();
menu2.add("pizza");
menu2.add("hamburger");
System.out.println(menu2);
menu2.add(0,"chicken");
System.out.println("menu2 = " + menu2);
//menu2.add(1); // Error
get(index)
과 set(index, value)
메소드를 사용하여 접근이 가능하다.// get, set 메소드 System.out.println(menu.get(1)); // get(index) : index의 값 반환 menu.set(1,"salad"); // set(index, value) : index의 값을 value로 바꾼다
contains
메소드는 Python의 in
과 같은 역할을 하는 메소드로, 배열 안에 원하는 값이 있는지 확인하는 용도로 사용 되고, 있으면 true 없으면 false를 return 한다.// contains System.out.println("menu.contains(\"pizza\") = " + menu.contains("pizza")); System.out.println("menu.contains(\"chicken\") = " + menu.contains("chicken"));
// remove System.out.println("menu.remove(\"salad\") = " + menu.remove("salad")); // 오버로딩 System.out.println("menu.remove(0) = " + menu.remove(0)); // 오버라이딩
Array를 ArrayList를 변환하는 방법은 Arrays.asList(Array)
를 사용하여 만든다.
// Array를 ArrayList로
String[] menu3 = {"pizza", "hamburger", "hotdog"};
ArrayList<String> menu4 = new ArrayList<>(Arrays.asList(menu3));
menu4.add("beer");
System.out.println("menu4 = " + menu4);
join()
메소드는 배열 혹은 나열된 데이터를 특정 구분자로 구분하고 싶을 때, 사용 되는 메소드 이다.// join String result = String.join(", ", menu4); System.out.println("result = " + result); // result = pizza, hamburger, hotdog, beer result = String.join("; ", menu4); System.out.println("result = " + result); // result = pizza; hamburger; hotdog; beer
ArrayList.sort()
메소드를 사용한다. defalut는 오름차순(ascending)으로, Comparator.naturalOrder())
이 default 이다. 내림차순으로 정렬하고 싶을경우 Comparator.reverseOrder()를 매개변수로 넣어주면 된다.// sort numbers.sort(null); // null -> 오름차순(ascending) System.out.println("numbers = " + numbers); numbers.sort(Comparator.naturalOrder()); // == sort.(null) System.out.println("naturalOrder / numbers = " + numbers); numbers.sort(Comparator.reverseOrder()); // -> 내림차순(descending) System.out.println("reverseOrder / numbers = " + numbers);