لمبداس
جيڪڏهن توهان کي خبر ناهي ته ليمبڊا ڇا آهن، پوء: هڪ ليمبڊا هن طرح نظر اچن ٿا:(a, b) -> a.compareTo(b)
(переменные) -> действие
هاڻي لاءِ ايترو ئي ڪافي آهي. توھان ھي نظريو پڙھي سگھوٿا ھتي: link one , link two , پر مان سمجهان ٿو ته مشق تمام گھڻو مزو آھي. مان توھان کي ھيٺ ڏنل مسئلو حل ڪرڻ جي صلاح ڏيان ٿو: طريقو 1 استعمال ڪندي ھڪڙي حساب ڪتاب لکو. طريقو قبول ڪرڻ گهرجي 2 ڊجيٽل قدر ۽ ٻيو ڪجهه. توهان جو ڪوڊ ڪجهه هن طرح نظر ايندو:
class Lambda{
public static void main (String[] args) {
}
public static double calculate(){
return null;
}
}
توھان کي 3 پيرا ميٽر داخل ڪرڻ جي ضرورت آھي طريقي جي دستخط ۾ calculate
، 1 ڪمانڊ شامل ڪريو return
۽ ھن طريقي کي ڪال ڪرڻ جي جانچ ڪريو main
. اهو طريقو ڇا ڪرڻ جي قابل هوندو؟
- فولڊ
- ضرب
- ورهائڻ؛
- ڪٽ؛
- روٽ جو حساب ڪريو؛
- طاقت کي وڌايو؛
- هڪ طاقت ڏانهن وڌايو دليلن جو مجموعو ورهايل پهريون نمبر + 117؛
- ۽ ٻيا سڀ آپريشن جيڪي توھان سوچي سگھو ٿا.
if-else
؛char
آپريشن جي اشاري طور؛switch-case
؛- ۽ ٻيو سڀ ڪجهه جيڪو توهان جي ذهن ۾ اچي ٿو.
- صرف ليمبڊاس، ڪم انهن تي آهي.
inputStream
۽ اهو ناهي OutputStream
. اهو مختلف آهي، اهو وڌيڪ دلچسپ آهي. اسٽريمز کي تبديل ڪيو آهي چڪر، مڪمل طور تي نه، پر اڃا به. انهن کي مقصد سان پيش ڪيو ويو آهي "توضيح نه ڪريو ته اهو ڪيئن ڪجي، وضاحت ڪريو ته ڇا ڪجي." نديءَ جو هڪ ننڍڙو مثال:
List<String> myList = Arrays.asList("a1", "a2", "b1", "c2", "c1");
myList.stream()
.filter(s -> s.startsWith("c"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
هتي ڇا ٿي رهيو آهي؟ اچو ته رايا شامل ڪريو:
myList.stream() // получить поток
.filter(s -> s.startsWith("c")) //отфильтровать значения, оставить те, что начинаются с «с»
.map(String::toUpperCase) // преобразовать все значения, перевести в верхний регистр
.sorted() // отсортировать по порядку (дефолтный порядо)
.forEach(System.out::println); // вывести каждый элемент на экран
باقاعده لوپ سان مقابلو ڪريو:
List<String> toSort = new ArrayList<>();
for(String s : myList){
if(s.startsWith("c")){
toSort.add(s.toUpperCase());
}
}
Collections.sort(toSort);
for(String s : toSort){
System.ouy.println(s);
}
جڏهن توهان ڪوڊ پڙهو ٿا، هر شي خوفناڪ ڏسڻ ۾ اچي ٿي، پر اهو تبصرن سان آسان آهي؟ اهو عام آهي، مون انهن کي ڊگهي وقت تائين نه سمجهيو. سمجھڻ جي ڪنجي مشق آھي. تنهن ڪري، اسان ٽئين پارٽي جي آرٽيڪل پڙهڻ شروع ڪيو ۽ اسان جي سوالن جا جواب ڳولڻ شروع ڪيو، توهان انهن کي هتي تبصرن ۾ پڻ پڇي سگهو ٿا، مان مڪمل جواب نه ڏيندس، پر مان هدايت ڏيندس. JavaRush کان ڪمن جي فهرست جيڪي مان سمجهان ٿو ته اسٽريمنگ جي مشق لاءِ بهترين آهن:
-
2208 - 1 وهڪرو ۽ 1 موٽڻ سان حل ڪري سگھجي ٿو، يعني. طريقي جي جسم سان شروع ٿيندي
return
۽ پوء اتي 1 سڄو وهڪرو هوندو. اچو ته گهرج کي ڇڏي ڏيوStringBuilder
. -
1908 - توھان ان کي 1 وهڪرو ۽ 1 واپسي سان پڻ حل ڪري سگھو ٿا. فائل پڙهڻ سان شروع ٿي. مون کي خبر ناهي ته اسٽريمز ذريعي فائل کي ڪيئن رڪارڊ ڪجي (جيڪڏهن اهو ممڪن آهي)، هاڻي لاءِ اسان اهو دستي طور ڪريون ٿا. اهي. اسان صرف 2 اسٽريمز کوليون ٿا (ڪنسول ۽ فائل ڏانهن لکڻ). اسان فائل کي طريقن سان پڙهون ٿا جيڪي اسان کي يا ته هڪ شيٽ يا هڪ وهڪرو (google ۽ javadoc) واپس ڪنداسين.
-
1907 - نظريي ۾، اهو پڻ هڪ وهڪرو ۾ حل ڪري سگهجي ٿو. وهڪرو ڏانهن ان پٽ فائل جو نالو آهي، آئوٽ پٽ دنيا جي لفظن جو تعداد آهي.
-
1016 - ٿورڙي خراب طريقي سان، توھان ان کي حل ڪري سگھو ٿا 1 وهڪرو ۽ 1 موٽڻ ۾؛
-
1821 - تمام آسان ۽ 1 وهڪرو ۽ 1 واپسي ۾.
اهي 2 ڪم توهان کي متعارف ڪرايو ويندو هڪ ٻيو اسٽريمنگ طريقو ۽ ٻيو ڪليڪٽر.
-
1925 - توھان ھڪڙي اسٽريم ۾ لفظن سان ھڪڙي لائن حاصل ڪري سگھوٿا ۽ پوءِ ان کي ھڪڙي فائل ۾ لکو (مون کي خبر ناهي ته اھو ممڪن آھي ته ھڪڙي وهڪرو مان ھڪڙي فائل تي لکڻ)
GO TO FULL VERSION