Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

Java 기초(3일차) 본문

Java

Java 기초(3일차)

취준er 2023. 8. 6. 23:40

Q. 정수 배열 sorting하는 방법?

 

int 배열 소팅은 java.util 패키지에서 Arrays클래스를 import한 뒤 sort를 이용한다.

이렇게 하면 원본 배열이 변경된다.

 

import java.util.Scanner;
import java.util.Arrays;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int[] students = new int[28];
        for (int i=0;i<28;i++){
            students[i] = sc.nextInt();
        }
        Arrays.sort(students); // 원본 변경
    }
}

 

Q. 자바에서 primitive type과 reference type의 차이는?

 

1) Primitive type - 기본 자료형

  • "실제 값"을 저장함 → 스택(Stack)에 저장됨
  • double, float, long. int, short, byte, char, boolean
  • 기본값이 있다. (따라서 null이 존재하지 않는다.)

2) Reference type - 참조 타입

  • 실제 값이 저장된 곳의 "주소값"을 저장함 -> 힙(Heap)에 저장됨
  • Array, Enumeration, class, Interface
  • 빈 객체를 의미하는 null이 존재한다.

 

Q. 자바에서 int와 Integer의 차이는?

 

int는 primitive class고 Integer는 Wrapper class다. 

 

  • Wrapper class는 primitive class를 객체로 '포장'한다.
  • int와 Integer 제외 모든 경우에 primitive의 첫 글자만 대문자로 바꾸면 Wrapper class의 이름이 된다.
  • Wrapper class는 산술 연산이 불가능하다. primitive type로 Unboxing해야만 연산이 가능해진다.

 

한 가지 용도를 들자면 문자열을 받아서 primitive type으로 바꿔줄 때 이용할 수 있다.

int i = Integer.parseInt(str);

 

 

 

 

아래로는 백준 연습문제


나머지(3052)

 

제출한 코드

import java.util.Scanner;
import java.util.Arrays;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[10];
        for (int i =0;i<10;i++){
            arr[i] = (sc.nextInt()) % 42;
        }
        int[] newarr = Arrays.stream(arr).distinct().toArray();
        System.out.println(newarr.length);

    }
}

 

  • 중복 제거

자바에서 배열의 중복된 요소를 제거하고 새로운 배열 만드는 방법에는 2가지가 있다.

첫 번째가 distinct()를 이용하는 방법이다.

int[] newarr = Arrays.stream(arr).distinct().toArray();

두 번째로 Set을 이용하는 방법이 있는데, 이후에 따로 포스팅하겠다.

 

 

  • 길이 구하기
int myarraylength = arr.length;
// 배열의 길이는 .length로 구한다.

int myStrlength = Strr.length();
// 문자열의 길이는 .length()

int mySize = Set1.size();
// Arraylist, Set 등의 Collection 객체의 길이는 size()로 구한다.