ما هو المعادل لـ LINQ في Java؟ كيف تعمل مع المجموعات بكفاءة؟
مرحبًا أيها الزملاء! أنا مطور Java مبتدئ، أنتقل من C#. هناك كنت أستخدم LINQ (Language Integrated Query) بنشاط لتصفية وفرز وإسقاط البيانات في المجموعات. على سبيل المثال، كان هذا الكود في C# مألوفًا بالنسبة لي:
var numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenSquares = numbers
.Where(n => n % 2 == 0)
.Select(n => n * n)
.ToList();
// النتيجة: [4, 16, 36]
الآن في Java أعمل مع المجموعات وأفهم أن الحلقات العادية for-each لمثل هذه المهام تولد الكثير من الكود النمطي. على سبيل المثال، هكذا أقوم حاليًا بتصفية قائمة:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenSquares = new ArrayList<>();
for (Integer n : numbers) {
if (n % 2 == 0) {
evenSquares.add(n * n);
}
}
هذا يعمل، لكن الكود يصبح ضخمًا، خاصة عندما تحتاج إلى تنفيذ عدة عمليات متتالية (تصفية، فرز، تحويل).