[JAVA] ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐฉ๋ฒ•(+์ •๋ ฌ)

2025. 1. 31. 16:43ยท๐ŸŽฏ Programming
๋ฐ˜์‘ํ˜•

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด ์›์†Œ๋“ค์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ, ์ค‘๋ณต ์ œ๊ฑฐ ํ›„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์‚ด์ง ์ ์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค ๐Ÿค—

 

1๏ธโƒฃ distinct() ์‚ฌ์šฉ

int[]arr = new int[n];
arr[0] =3; arr[1]=2;

// ์ค‘๋ณต ์ œ๊ฑฐ
int[] arr2 = Arrays.stream(arr).distinct().toArray(); 
Arrays.sort(arr2);

 

sort ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์ž…๋‹ˆ๋‹ค.

๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์œผ๋ฉด `Collections.reverseOrder()` ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทผ๋ฐ `Collections.reverseOrder()`์œผ๋กœ ์ •๋ ฌํ•  ๋ฐฐ์—ด์€ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํƒ€์ž…์ด ์•„๋‹Œ ๋ž˜ํผํด๋ž˜์Šค ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์ !

์ •์ˆ˜์˜ ๊ฒฝ์šฐ, `int` ๊ฐ€ ์•„๋‹Œ `Integer` ์—ฌ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

๋”ฐ๋ผ์„œ `int []` ํƒ€์ž…์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ `Integer []`๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ •๋ ฌํ•œ ํ›„, ๋‹ค์‹œ `int []`ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

int[] arr1 = {3, 1, 2, 4};

// 1. int[] -> Integer[]
Integer[] arr2 = Arrays.stream(arr).boxed().distinct().toArray(Integer[]::new);

// 2. ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
Arrays.sort(arr2, Collections.reverseOrder());

// 3. Integer[] -> int[]
int[] arr3 = Arrays.stream(arr2).mapToInt(Integer::intValue).toArray();
System.out.println(Arrays.toString(arr3));
  • `boxed()` ๋ฉ”์„œ๋“œ๋Š” ์›์‹œ ํƒ€์ž…์— ๋Œ€ํ•œ ์ŠคํŠธ๋ฆผ ์ง€์›์„ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ์ „ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค.
    • ex. IntStream -> Stream <Integer>
  • `mapToInt()` ๋ฉ”์„œ๋“œ๋Š” Stream์„ IntStream์œผ๋กœ ์ „ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค.
    • `int []` ๋ฅผ ์ŠคํŠธ๋ฆผํ™”ํ•˜๋ฉด `IntStream` /  `Integer []`๋ฅผ ์ŠคํŠธ๋ฆผํ™”ํ•˜๋ฉด `Stream <Integer>` 
  • ๋‹ค๋ฅธ Stream์„ int[]๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์œผ๋ฉด mapToInt() ์‚ฌ์šฉํ•˜๊ธฐ

 

์œ„ ์ฝ”๋“œ์—์„œ๋Š” 3๊ฐ€์ง€ ๊ณผ์ •์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ž‘์„ฑํ–ˆ์ง€๋งŒ, ํ•œ ์ค„๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

int[] arr1 = {3, 1, 2, 4};

// ํ•œ ์ค„๋กœ ์ž‘์„ฑ
int[] arr2 = Arrays.stream(arr)
                     .distinct()
                     .boxed()
                     .sorted(Comparator.reverseOrder())
                     .mapToInt(Integer::intValue)
                     .toArray();

 

2๏ธโƒฃ HashSet ์‚ฌ์šฉ

์ง‘ํ•ฉ์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์• ์ดˆ์— ์ •๋‹ต์„ ๋‹ด๋Š” ์ž๋ฃŒํ˜•์œผ๋กœ HashSet์„ ์‚ฌ์šฉํ•˜๋ฉด, ์ดํ›„์— ๋”ฐ๋กœ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

HashSet<Integer> set = new HashSet<>();
int[] answer = set.stream().sorted().mapToInt(Integer::intValue).toArray()

 

 


 

โœ… ๊ธฐ๋ณธํ˜• ๋ฐฐ์—ด  <-> ๋ž˜ํผ ํด๋ž˜์Šค ๋ฐฐ์—ด

๐Ÿท Integer [] -> int [] ๋ณ€ํ™˜

Integer[] a = {1, 2, 3, 4};
int[] b = Arrays.stream(a).mapToInt(Integer::intValue).toArray();

 

๐Ÿท int [] -> Integer [] ๋ณ€ํ™˜

int[] a = {1, 2, 3, 4};
Integer[] b = Arrays.stream(a).boxed().toArray(Integer[]::new);

 

๋ฐ˜์‘ํ˜•

'๐ŸŽฏ Programming' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์Šคํ”„๋ง] JPA N+1 ๋ฌธ์ œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…  (2) 2025.03.27
[ISSUE] error: connect econnrefused  (1) 2025.02.17
[Github Action] build ์˜ค๋ฅ˜ ์›์ธ ๋” ์ž์„ธํžˆ ๋ณด๋Š” ๋ฒ•  (0) 2024.10.08
[ISSUE] boolean์—์„œ is๊ฐ€ ์ƒ๋žต๋˜๋Š” ๋ฌธ์ œ  (0) 2024.09.06
'๐ŸŽฏ Programming' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์Šคํ”„๋ง] JPA N+1 ๋ฌธ์ œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…
  • [ISSUE] error: connect econnrefused
  • [Github Action] build ์˜ค๋ฅ˜ ์›์ธ ๋” ์ž์„ธํžˆ ๋ณด๋Š” ๋ฒ•
  • [ISSUE] boolean์—์„œ is๊ฐ€ ์ƒ๋žต๋˜๋Š” ๋ฌธ์ œ
dev-heyjin
dev-heyjin
  • dev-heyjin
    ๊ฐœ๋ฐœ ๊ธฐ๋ก
    dev-heyjin
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (56)
      • ๐ŸŽฏ Programming (8)
      • ๐Ÿ’ช Algorithm (16)
      • โš™๏ธ CS (31)
        • ๋„คํŠธ์›Œํฌ (15)
        • ์šด์˜์ฒด์ œ (15)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    DB
    RDS
    ํ•ดํ‚น
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
dev-heyjin
[JAVA] ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐฉ๋ฒ•(+์ •๋ ฌ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”