νλ‘κ·Έλλ° μΈμ΄μ μ ν¨μλΌλ μ©μ΄λ 'λ©μλ', νΉν μ μ λ©μλμ κ°μ μλ―Έλ‘ μ¬μ©λμ§λ§ μλ°μ ν¨μλ μ΄μ λν΄ μνμ μΈ ν¨μμ²λΌ μ¬μ©λλ©° λΆμμ©μ μΌμΌν€μ§ μλ ν¨μλ₯Ό μλ―Ένλ€.
μλ° 8μμλ ν¨μλ₯Ό μλ‘μ΄ κ°μ νμμΌλ‘ μΆκ°νλλ°, μ΄λ λ©ν°μ½μ΄μμ λ³λ ¬ νλ‘κ·Έλλ°μ νμ©ν μ μλ μ€νΈλ¦Όκ³Ό μ°κ³λ μ μκΈ° μν¨μ΄λ€.
ν¨μκ° νμν μ΄μ λ₯Ό μμ보기 μ μ μΌκΈ κ° λλ μΌκΈ μλ―Όμ΄λΌκ³ λΆλ¦¬λ μ©μ΄μ μλ―Έλ₯Ό μμ보μ.
μ ν΅μ μΌλ‘ λ―Έκ΅ μλ―Ό κΆλ¦¬μμ μ λν ν΄λΉ μ©μ΄λ λ°κΏ μ μλ κ°μ μΌκΈ μλ―Όμ΄λΌκ³ λΆλ¬μλ€. μλ₯Ό λ€μ΄ intλ double νμμ κΈ°λ³Έκ° λ° String νμμ κ°μ²΄κ° μΌκΈ μλ―Όμ ν΄λΉνλ€. νμ§λ§ ν΄λμ€λ λ©μλμ κ°μ κ²½μ° κ°μ ꡬ쑰λ₯Ό νννλ λ° λμμ΄ λ μλ μμ§λ§, κ·Έ μμ²΄λ‘ κ°μ΄ λ μλ μκΈ° λλ¬Έμ μ΄κΈ μλ―Όμ ν΄λΉνλ€.
μ΄λ κ² μ΄κΈ μλ―ΌμΈ λ©μλλ₯Ό λ°νμμ μ λ¬ν μ μλ μΌκΈ μλ―ΌμΌλ‘ λ§λ λ€λ©΄ νλ‘κ·Έλλ°μ μ μ©νκ² νμ©λ μ μλ€.
λ©μλμ λλ€λ₯Ό μΌκΈ μλ―ΌμΌλ‘
λ©μλ μ°Έμ‘°
μλ° 8 μ΄μ μλ λ©μλκ° κ°μ΄ λ μ μμκΈ° λλ¬Έμ λ©μλλ₯Ό κ°μ²΄λ‘ μΈμ€ν΄μ€ννμ¬ μ λ¬ν΄μΌ νλ€. νμ§λ§ μλ° 8μ λ©μλ μ°Έμ‘°λ₯Ό μ΄μ©νλ©΄ λ©μλ μμ²΄κ° ν¨μμ νλΌλ―Έν°λ‘ μ λ¬λ μ μλ€.
ν΄λΉ μμλ λλ ν°λ¦¬μ μ¨κ²¨μ§ νμΌμ μ°Ύλ μ½λμ΄λ€.
//μλ° 8 μ΄μ
File[] hiddenFiles = new File(".").listFiles(new FileFilter() {
public boolean accept(File file) {
return file.isHidden();
}
})
//λ©μλ μ°Έμ‘° μ μ©
File[] hiddenFiles = new File(".").listFiles(File::isHidden);
μ΄λ―Έ isHidden()
μ΄λΌλ λ©μλλ μ€λΉλμ΄ μμΌλ―λ‘ λ©μλ μ°Έμ‘°(::)λ₯Ό μ΄μ©ν΄ κ°μ μ§μ μ λ¬ν μ μκ² λμλ€.
λλ€(μ΅λͺ ν¨μ)
μλ° 8μμλ λ©μλλ₯Ό μΌκΈ κ°μΌλ‘ μ·¨κΈν λΏ μλλΌ λλ€λ₯Ό ν¬ν¨ν΄μλ κ°μΌλ‘ ννν μ μλλ°, μ§μ λ©μλλ₯Ό μ μνλ μν©μ΄ μλλ©΄μ μ΄μ©ν μ μλ νΈλ¦¬ν ν΄λμ€λ λ©μλκ° μμ κ²½μ° λλ€ λ¬Έλ²μ μ΄μ©νλ©΄ κ°κ²°νκ² μ½λλ₯Ό μμ±ν μ μλ€.
λλ€ λ¬Έλ² νμμΌλ‘ ꡬνλ νλ‘κ·Έλ¨μ 'ν¨μλ‘ μΌκΈ κ°μΌλ‘ λ겨주λ νλ‘κ·Έλ¨μ ꡬννλ€'λΌκ³ νλ€.
μ½λ λ겨주기 - μμ
Apple ν΄λμ€μ getColor λ©μλκ° μκ³ , Apples 리μ€νΈλ₯Ό ν¬ν¨νλ λ³μ inventoryκ° μλ€κ³ κ°μ ν λ, μνλ 쑰건μ λ§κ² 리μ€νΈλ₯Ό λ°ννλ νλ‘κ·Έλ¨μ ꡬνν΄ λ³΄μ.
μ΄λ λκ΅°κ° 150κ·Έλ¨ μ΄μμΈ μ¬κ³Όλ§ νν°λ§νκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ μ½λλ₯Ό μμ±ν μ μμ κ²μ΄λ€.
public statuc List<Apple> filterHeavyApples(List<Apple> inventory) {
List<Apple> result = new ArrayList<>();
for (Apple apple : inventory) {
if (apple.getWeight() > 150) {
result.add(apple);
}
}
return result;
}
λ§μ½ 무κ²λ₯Ό κΈ°μ€μΌλ‘ νλ κ²μ΄ μλ μκΉμ κΈ°μ€μΌλ‘ νλ€λ©΄, ifλ¬Έ λ΄λΆμ μ½λλ§ λ¬λΌμ§κ³ μμ ν λκ°μ ꡬ쑰μ μ½λκ° λλ€.
μ΄λ 볡μ¬&λΆμ¬ λ£κΈ° μμ μ½λ μμ±μ΄λ©° λ²κ·Έκ° λ°μν κ²½μ° λͺ¨λ μ½λλ₯Ό κ³ μ³μΌ νλ λ¬Έμ μ μ΄ λ°μνλ€.
νμ§λ§ μλ° 8μμλ μ½λλ₯Ό μΈμλ‘ λκ²¨μ€ μ μμΌλ―λ‘ νν° λ©μλλ₯Ό μ€λ³΅μΌλ‘ ꡬνν νμκ° μμ΄ μλμ κ°μ΄ ꡬνν μκ° μλ€.
public static boolean isHeavyApple(Apple apple) {
return apple.getWeight() > 150;
}
static List<Apple> filterApples(List<Apple> inventory, Predicate<Apple> p) { //쑰건 νλ³ ν¨μκ° Predicate νλΌλ―Έν°λ‘ μ λ¬
List<Apple> result = new ArrayList<>();
for (Apple apple : inventory) {
if (p.test(apple)) { //쑰건 λΆν© μ¬λΆ νμΈ
result.add(apple);
}
}
return result;
}
μ°Έκ³ λ‘ μμμ μ°μΈ Predicateλ μΈμλ‘ κ°μ λ°μ μ°Έ λλ κ±°μ§μ λ°ννλ ν¨μλ₯Ό μλ―Ένλ μ©μ΄μ΄λ€.
μ΄μ μ¬λ¬ κ°μ§ 쑰건μ κ²μ¦νκΈ° μν΄μ λκ°μ μ½λλ₯Ό 볡μ¬&λΆμ¬ λ£κΈ° νλ μμΌλ‘ μμ±ν νμ μμ΄ κ²μ¦ λ©μλλ§ μΆκ°μ μΌλ‘ μμ±νλ©΄ λλ€. filterApples() λ©μλλ
λ€μκ³Ό κ°μ΄ νΈμΆνμ¬ μ‘°κ±΄μ νλ³ν μ μλ€.filterApples(inventory, Apple::isGreenApple)
λ©μλ μ λ¬μμ λλ€λ‘
ν λ λ² μ¬μ©ν λ©μλλ₯Ό λ§€λ² μ μνκ³ κ°μΌλ‘ μ λ¬νλ κ²μ λ€μ λ²κ±°λ‘μ΄ μΌμ΄λ€. μλ° 8μμλ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ€μκ³Ό κ°μ΄ μ΅λͺ ν¨μ(λλ€)λ₯Ό μ΄μ©ν μ μλ€.
filterApples(inventory, (Apple a) -> a.getWeight() > 150);
νμ§λ§ λλ€κ° 볡μ‘ν λμμ μννλ©΄μ λͺ μ€ μ΄μμΌλ‘ κΈΈμ΄μ§λ€λ©΄, λλ€λ³΄λ€λ μ½λκ° μννλ μΌμ μ μ€λͺ νλ μ΄λ¦μ κ°μ§ λ©μλλ₯Ό μ μνκ³ λ©μλ μ°Έμ‘°λ₯Ό νμ©νλ κ²μ΄ λ°λμ§νλ€. μ½λμ λͺ νμ±μ΄ μ°μ μ λμ΄μΌ νκΈ° λλ¬Έμ΄λ€.