ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
์ฝ”๋”ฉ ์ง ๐Ÿ’ช
ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
  • ์นดํ…Œ๊ณ ๋ฆฌ (135)
    • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• (12)
      • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (5)
      • DB (0)
      • Node.js (4)
      • ํ˜•์ƒ ๊ด€๋ฆฌ (2)
      • Spring (1)
    • ์›น (11)
      • React (5)
      • ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ__์›น (6)
    • ๋ชจ๋ฐ”์ผ (2)
      • ์•ˆ๋“œ๋กœ์ด๋“œ (2)
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (55)
      • C (13)
      • Python (15)
      • SQL (5)
      • Java (22)
    • ์‚ฌ๋ฌผ์ธํ„ฐ๋„ท (11)
      • ์•„๋‘์ด๋…ธ (11)
    • ์ผ์ƒ (31)
      • ๋ง›์ง‘ (13)
      • ๋žญํ‚น๋‹ญ์ปด (4)
      • ํ›„๊ธฐ (11)
      • ์š”๋ฆฌ (3)
      • ์žก๋‹ด (0)
    • ๊ต์–‘ (4)
      • ์‹ฌ๋ฆฌํ•™ (3)
      • ํ…Œ๋‹ˆ์Šค (1)
    • ์ž๊ฒฉ์ฆ (9)
      • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿ’ป github

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ

์ฝ”๋”ฉ ์ง ๐Ÿ’ช

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/Java

[Java] ์ž๋ฐ” ๋žŒ๋‹ค (Lambda)

2023. 2. 2. 01:19

[ ๋žŒ๋‹ค (Lambda) ]

๋”๋ณด๊ธฐ

- ์ž๋ฐ”8 ์ดํ›„ ๋“ฑ์žฅํ•œ ๋žŒ๋‹ค์‹์€ ์ต๋ช… ํด๋ž˜์Šค์— ๋น„ํ•ด ๊ฐ„๊ฒฐ

- ๋žŒ๋‹ค๋Š” ํƒ€์ž… ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋ฌธ๋งฅ์„ ์‚ดํŽด ํƒ€์ž…์ถ”๋ก .

-  ํƒ€์ž… ์ถ”๋ก ์— ํ•„์š”ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ์ •๋ณด๋ฅผ ์ œ๋„ค๋ฆญ์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์—

   ์ œ๋„ค๋ฆญ์ด ์—†์„ ๊ฒฝ์šฐ ์ผ์ผํžˆ ํƒ€์ž…์„ ๋ช…์‹œํ•ด ์ฃผ์–ด์•ผ ํ•จ.

- ์œ„์™€ ๊ฐ™์ด ํƒ€์ž…์„ ๋ช…์‹œํ•  ๋•Œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋žŒ๋‹ค์‹์˜ ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž…์€ ์ƒ๋žต

- ๋žŒ๋‹ค๋Š” ์ด๋ฆ„์ด ์—†์œผ๋ฉฐ ๋ฌธ์„œํ™”๋„ ๋ถˆ๊ฐ€ (์ต๋ช… ํด๋ž˜์Šค์™€ ์œ ์‚ฌํ•จ)

   ๋”ฐ๋ผ์„œ ์ฝ”๋“œ์˜ ์ค„์ด ๊ธธ์–ด์ง€๊ฑฐ๋‚˜ ๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค๋ฉด ๋žŒ๋‹ค์‹์˜ ์‚ฌ์šฉ์„ ํ”ผํ•ด์•ผ ํ•จ

- ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ธ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ์‹œ์—” ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

- ๋žŒ๋‹ค์—์„œ this ํ‚ค์›Œ๋“œ๋Š” ์™ธ๋ถ€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

  ํ•จ์ˆ˜ ๊ฐ์ฒด ์ž์‹ ์„ ์ฐธ์กฐํ•  ๊ฒฝ์šฐ ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

 

[ ์ž๋ฐ” ๋žŒ๋‹ค ํ‘œํ˜„์‹ ์ž‘์„ฑ ]

๋”๋ณด๊ธฐ

[ ๋žŒ๋‹ค ํ‘œํ˜„์‹ ์œ ์˜ ์‚ฌํ•ญ ]

- ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ ๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ

- ํ•จ์ˆ˜ ๋ชธ์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๋ช…๋ น๋ฌธ๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ ์ค‘๊ด„ํ˜ธ ({}) ์ƒ๋žต ๊ฐ€๋Šฅ

- ํ•จ์ˆ˜์˜ ๋ชธ์ฒด๊ฐ€ ํ•˜๋‚˜์˜ return๋ฌธ์œผ๋กœ ์ด๋ฃจ์–ด์งˆ ๊ฒฝ์šฐ ์ค‘๊ด„ํ˜ธ ({}) ์ƒ๋žต ๊ฐ€๋Šฅ

 

[ ๋ฌธ๋ฒ• ]

( ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก ) -> { ํ•จ์ˆ˜ ๊ตฌํ˜„๋ถ€ }

 

[ ๋žŒ๋‹ค์‹ ์˜ˆ์ œ ]

public class TestCode{
	
	public static void main(String[] args) {
		
		// -- ๊ธฐ์กด ๋ฐฉ์‹์˜ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ์˜ˆ์ œ -- 
		new Thread(new Runnable() {
			public void run() {
				System.out.println("์ „ํ†ต์  ๋ฐฉ์‹์˜ ์ผํšŒ์šฉ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ");
			}
		}).start();
		
		// -- ๋žŒ๋‹ค์‹์„ ์ด์šฉํ•œ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ์˜ˆ์ œ --
		new Thread(()-> {
			System.out.println("๋žŒ๋‹ค์‹ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ");
		}).start();
	}
}

/* [์ถœ๋ ฅ ๊ฒฐ๊ณผ]
    ์ „ํ†ต์  ๋ฐฉ์‹์˜ ์ผํšŒ์šฉ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ
    ๋žŒ๋‹ค์‹ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ
*/

 

 

 

[ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค (functional interface) ]

ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋žŒ๋‹ค์‹์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์‹์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๊ฒฐ์ • ํ•ด์•ผํ•จ
// ์ฐธ์กฐ๋ณ€์ˆ˜ํƒ€์ž… ์ฐธ์กฐ๋ณ€์ˆ˜๋ช… = ๋žŒ๋‹ค ํ‘œํ˜„์‹
Animal animal = (dog, num) -> System.out.println(dog + "๋Š” " + num + "๋ฒˆ ์ง–์Šต๋‹ˆ๋‹ค." );โ€‹

๋žŒ๋‹ค ํ‘œํ˜„์‹์„ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜ํƒ€์ž…์„ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ผ ํ•จ
ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ถ”์ƒํด๋ž˜์Šค์™€ ๋‹ฌ๋ฆฌ ๋‹จ ํ•˜๋‚˜์˜ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋งŒ์„ ๊ฐ€์ ธ์•ผ ํ•จ

@FunctionalInterface ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์ž„์„ ๋ช…์‹œํ•ด ์ค€๋‹ค.

 

[ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค ์˜ˆ์ œ ]

@FunctionalInterface
interface Animal{
	abstract void display(String dog, int num);
}


class CAnimal implements Animal{
	@Override
	public void display(String dog, int num) {
		 System.out.println(dog + "๋Š” " + num + "๋ฒˆ ํ•˜์ฐฎ๊ฒŒ ์ง–์Šต๋‹ˆ๋‹ค." );
	}
	
}

public class TestCode{	
	public static void main(String[] args) {
		
        // ๋žŒ๋‹ค์‹์„ ์‚ฌ์šฉํ•œ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ‘œํ˜„
		Animal animal = (dog, num) -> System.out.println(dog + "๋Š” " + num + "๋ฒˆ ์ง–์Šต๋‹ˆ๋‹ค." );
		animal.display("์Šˆ๋‚˜์šฐ์ €", 4);
		
		CAnimal animal2 = new CAnimal();
		animal2.display("์น˜์™€์™€", 2);
	}
}

/* [์ถœ๋ ฅ ๊ฒฐ๊ณผ]
    ์Šˆ๋‚˜์šฐ์ €๋Š” 4๋ฒˆ ์ง–์Šต๋‹ˆ๋‹ค.
    ์น˜์™€์™€๋Š” 2๋ฒˆ ํ•˜์ฐฎ๊ฒŒ ์ง–์Šต๋‹ˆ๋‹ค.
*/
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    'ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Java] ์ž๋ฐ” ์ž๋ฃŒ๊ตฌ์กฐ(JCF)
    • [์ž๋ฐ”] ์ž๋ฐ” Wrapper ํด๋ž˜์Šค
    • [Java] ์ž๋ฐ” ๋‚ด๋ถ€ํด๋ž˜์Šค(์ค‘์ฒฉ ํด๋ž˜์Šค) - ์Šคํƒœํ‹ฑํด๋ž˜์Šค&์ธ์Šคํ„ด์Šคํด๋ž˜์Šค&์ง€์—ญํด๋ž˜์Šค&์ต๋ช…ํด๋ž˜์Šค
    • [Java] ์ž๋ฐ” ์บ์ŠคํŒ…
    ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
    ใ‚ใกใ‚ƒใใกใ‚ƒ ้–‹็™บ่€…๐Ÿฆพ
    ๐Ÿ‘Š ๋ธ”๋กœ๊ทธ๋„ ๊ทผ์„ฑ์ด๋‹ค? ๐Ÿ‘Š

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