Java) 2์ฐจ์› ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ(Arrays.sort ๋žŒ๋‹ค์‹)

2023. 1. 27. 14:46ยทLanguages | Frameworks/Java

Java Array Sort

์ž๋ฐ”์—์„œ 1์ฐจ์› ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š”  Arrays.sort() ๋ฉ”์„œ๋“œ์— ์ธ์ž๋กœ ๋ฐฐ์—ด์„ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ, 

2์ฐจ์› ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ํ•˜๋ ค๋ฉด Arrays.sort์—์„œ ๋žŒ๋‹ค์‹์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.


1์ฐจ์› ๋ฐฐ์—ด(int) ์ •๋ ฌ - ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ 

์—ฌ๊ธฐ์„œ ์ž ๊น 1์ฐจ์› ๋ฐฐ์—ด(์ •์ˆ˜ํ˜•) ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ฝ”๋“œ๋กœ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์ž.

# ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
int[] arr = {1, 26, 17, 25, 99, 44, 303};
Arrays.sort(arr);

>>>>>๊ฒฐ๊ณผ: [1, 17, 25, 26, 44, 99, 303]

 

1์ฐจ์› intํ˜• ๋ฐฐ์—ด์˜ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์€ ๋น„๊ต์  ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์€ ์ƒ๋‹นํžˆ ๊นŒ๋‹ค๋กญ๋‹ค.

intํ˜• ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด Arrays.sort์˜ ๋‘๋ฒˆ์งธ ์ธ์ž์— Collections์˜ reverseOrder()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ,

Arrays.sort("๋ฐฐ์—ด ๋ช…", Collections.reverseOrder());

 

 

intํ˜• ๋ฐฐ์—ด์ด๋ผ๋ฉด, int๊ฐ€ Object ํƒ€์ž…์ด ์•„๋‹Œ, ๊ธฐ๋ณธํ˜• ํƒ€์ž…(primitive type)์ด๊ธฐ ๋•Œ๋ฌธ์— Object๋ฅผ ์ƒ์†ํ•œ ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ธ Collections๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

๋”ฐ๋ผ์„œ intํ˜• ๋ฐฐ์—ด์„ Object๋ฅผ ์ƒ์†ํ•˜๋Š” Wrapper ํด๋ž˜์Šค๋กœ ๋ฐ•์‹ฑํ•ด์ฃผ์–ด์•ผ ์—ญ์ˆœ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

// intํ˜• ๋ฐฐ์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
int[] arr = {1, 26, 17, 25, 99, 44, 303};
Integer[] arr2 = Arrays.stream(arr).boxed().toArray(Integer[]::new); //๋ฐ•์‹ฑ
Arrays.sort(arr2, Collections.reverseOrder());

2์ฐจ์› ๋ฐฐ์—ด(int) ์ •๋ ฌ - ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ

๊ทธ๋ ‡๋‹ค๋ฉด 2์ฐจ์› ๋ฐฐ์—ด(intํ˜•) ์ •๋ ฌ์€ ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

Comparator ์ต๋ช… ํด๋ž˜์Šค ๊ตฌํ˜„, Lambda(๋žŒ๋‹ค์‹), Comparator.comparing()๋“ฑ์„ ์‚ฌ์šฉํ•œ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ,

์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ๋žŒ๋‹ค์‹์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

 

์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.

Arrays.sort()๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ธ์ž์— ๋žŒ๋‹ค์‹์„ ์ด์šฉํ•œ๋‹ค.

 

์˜ˆ์‹œ
int[][] arr = new int[][]{{5,40},{3,50},{1,30},{4,20},{2,10}};
// 2. Lambda ์‚ฌ์šฉ - Java 8์ด์ƒ
Arrays.sort(arr, (o1, o2) -> {
    return Integer.compare(o1[0], o2[0]); 
});

>>>>>>>>๊ฒฐ๊ณผ: {1,30}, {2,10}, {3,50}, {4,20}, {5,40}

์ด๊ฒƒ์„ ์ด์šฉํ•˜์—ฌ์„œ 0๋ฒˆ์งธ ์ธ์ž๊ฐ€ ๊ฐ™์„ ๋•Œ, 1๋ฒˆ์งธ ์ธ์ž๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ํ•˜๋Š” ๋ฒ•๋„ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

์˜ˆ์‹œ
int[][] arr = new int[][]{{5,50},{5,40},{1,30},{4,20},{2,10}};
// 2์ฐจ์› ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        Arrays.sort(arr, (o1, o2) -> {
            //0๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ๊ฐ™์„๋• 1๋ฒˆ์งธ ์š”์†Œ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ
            if(o1[0]==o2[0]) return Integer.compare(o1[1], o2[1]);
            //๋‹ค๋ฅผ๋• 0๋ฒˆ์งธ ์š”์†Œ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ
            else return Integer.compare(o1[0], o2[0]);
        });
        
>>>>๊ฒฐ๊ณผ : {1,30},{2,10},{4,20},{5,40},{5,50}

 

๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ๋„ ๊ฐ„๋‹จํ•˜๋‹ค.(๊ฒฐ๊ณผ๋Š” ์ƒ๋žตํ•˜๊ฒ ๋‹ค) 

 

์˜ˆ์‹œ
// ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
int[][] arr = new int[][]{{5,40},{3,50},{1,30},{4,20},{2,10}};
// 2. Lambda ์‚ฌ์šฉ - Java 8์ด์ƒ
Arrays.sort(arr, (o1, o2) -> {
    if(o1[0] == o2[0]) return Integer.compare(o2[1], o1[1]);
    else return Integer.compare(o2[0], o1[0]);
});

'Languages | Frameworks > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Java) HashMap์˜ computeIfAbsent์— ๋Œ€ํ•ด(feat. getOrDefault)  (0) 2023.01.27
Java) List์™€ ArrayList์˜ ์ฐจ์ด?  (0) 2022.11.08
JPA, JPQL  (0) 2022.09.27
์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜์™€ ์ถ”์ฒœ(SHA, PBKDF2, Bcrypt) + Java ์ ์šฉ ์ƒ˜ํ”Œ  (0) 2022.07.18
๊ฒŒ์‹œํŒ ๊ธ€์ด ์ค‘๊ฐ„์— ์‚ญ์ œ์‹œ > ๋ฒˆํ˜ธ ์ดˆ๊ธฐํ™”ํ›„ ์ธ๋ฑ์‹ฑ ํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2022.07.13
'Languages | Frameworks/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Java) HashMap์˜ computeIfAbsent์— ๋Œ€ํ•ด(feat. getOrDefault)
  • Java) List์™€ ArrayList์˜ ์ฐจ์ด?
  • JPA, JPQL
  • ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜์™€ ์ถ”์ฒœ(SHA, PBKDF2, Bcrypt) + Java ์ ์šฉ ์ƒ˜ํ”Œ
_๊ฑฐ๋ˆ„
_๊ฑฐ๋ˆ„
๋ธ”๋กœ๊ทธ ์ด์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค! https://velog.io/@pigonhair/posts
  • _๊ฑฐ๋ˆ„
    ๊ฑฐ๋ˆ„๋„ค๋ฃธ๐Ÿ”‘
    _๊ฑฐ๋ˆ„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๊ฑฐ๋ˆ„๋„ค๋ฃธ (83)
      • Languages | Frameworks (41)
        • Java (10)
        • Spring (23)
        • Docker (8)
      • Git | Github (1)
      • DBMS (4)
        • SQL (4)
      • DevOps | Server (3)
      • OS (6)
        • Linux (6)
      • Algorithm (26)
        • Theory (1)
        • Data Structure (7)
        • BaekJoon (5)
        • Programmers (1)
        • KBro Study (12)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • Github
    • BaekJoon
    • solved class
    • ๋ฐฉ๋ช…๋ก
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
_๊ฑฐ๋ˆ„
Java) 2์ฐจ์› ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ(Arrays.sort ๋žŒ๋‹ค์‹)
์ƒ๋‹จ์œผ๋กœ

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