本文主要介绍Java lambda表达式与泛型的相关概念,包括基本语法、使用场景和示例。使用Markdown语法进行排版,方便阅读。
Java lambda表达式
基本语法
Lambda表达式是JDK 1.8中引入的新特性,简化了编写匿名内部类的过程。其基本语法如下:
(parameters) -> expression
或
(parameters) -> { statements; }
其中,parameters是参数列表,expression或statements是表达式或代码块。
使用场景
Lambda表达式通常应用于函数式接口中,即只有一个抽象方法的接口。通过Lambda表达式可以简化函数式接口的实现,提高代码的可读性和简洁性。
比如,该接口定义了一个拥有两个参数的抽象方法:
interface MyInterface {
int add(int a, int b);
}
可以使用Lambda表达式来实现该接口:
MyInterface myInterface = (a, b) -> a + b;
示例说明
下面是一个具体的例子:
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> names = Arrays.asList("Tom", "Jerry", "Alice", "Bob");
names.forEach(name -> System.out.println(name));
}
}
该示例中,我们定义了一个字符串列表,然后使用Lambda表达式遍历该列表并输出其中的每个元素。
Java泛型
基本语法
Java泛型是JDK 5.0引入的新特性,可以在编写代码时实现类型的参数化。其基本语法如下:
class MyClass<T> {
// ...
}
其中,T是类型参数,可以替代任意类型。在实例化该类时,需要指定具体类型:
MyClass<String> myObject = new MyClass<>();
使用场景
Java泛型主要应用于容器类等数据结构中,可以提高代码的可重用性和可读性。
比如,该容器类定义了一个泛型类型的列表:
class MyContainer<T> {
private List<T> list = new ArrayList<T>();
public void add(T item) {
list.add(item);
}
public T get(int index) {
return list.get(index);
}
}
可以在实例化该类时指定具体类型,比如:
MyContainer<String> container = new MyContainer<String>();
container.add("Hello");
String str = container.get(0);
示例说明
下面是一个具体的例子:
class Pair<T, U> {
private T first;
private U second;
public Pair(T first, U second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public U getSecond() {
return second;
}
}
public class Main {
public static void main(String[] args) {
Pair<String, Integer> pair = new Pair<>("Tom", 18);
System.out.println("Name: " + pair.getFirst());
System.out.println("Age: " + pair.getSecond());
}
}
该示例中,我们定义了一个泛型类Pair,用来表示键值对类型的数据。然后在主函数中实例化该类并输出其中的数据。由于该类使用了泛型,因此可以适用于不同类型的数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java lambda表达式与泛型整理总结 - Python技术站