lambda应用实例

1.替换compartor接口

import java.util.Arrays;
import java.awt.Toolkit;
import java.util.*;

import javax.swing.JOptionPane;
import javax.swing.Timer;

public class LambdaTest {
	public static void main(String[] args) {
		String[]	planets = new String[] { "Mercury","Venus","Earth","Mars",
				"Jupiter","Staturn","Uranus","Neptune"};
		
		System.out.println(Arrays.toString(planets));
		System.out.println("Sorted in dictionary order");
		Arrays.sort(planets);
		System.out.println(Arrays.toString(planets));
		System.out.println("Sorted by length: ");
		Arrays.sort(planets,(first,second) -> first.length() -second.length());        //使用lambda表达式
		System.out.println(Arrays.toString(planets));
		
		Timer timer = new Timer(1000,event -> 
			{System.out.println("The time is " + new Date());
				Toolkit.getDefaultToolkit().beep();   /*响铃*/});
		timer.start();
		
		JOptionPane.showMessageDialog(null, "Quit program?");
		System.exit(0);
	}
}


2.实现遍历map中的键值对

public static void main(String[] args) {
	// 使用了泛型创建一个HashMap
	Map<String, String> map = new HashMap<String, String>();
		
	//添加键值对
	map.put("zhangsan", "15254305006");
	map.put("lisi", "15254305068");
	map.put("wangwu", "13405786007");

	//使用keySet得到所有的键值
	Set<String> ketSet = map.keySet();
	Iterator<String> iterator = ketSet.iterator(); // 得到迭代器
		
	//使用Lambda方式输出
	System.out.println("lambda方式输出:");
	iterator.forEachRemaining(element -> {
		String value = map.get(element);
		System.out.println(element + "->" + value);
	});

}


3.充当比较器Comparator

public class Test2 {
	
	static class Person {
		private String name;
		private int age;
		public Person(String name, int age) {
			super();
			this.name = name;
			this.age = age;
		}
		@Override
		public String toString() {
			return "Person [name=" + name + ", age=" + age + "]";
		}

		public int getAge() {
			return age;
		}
		
		
	}
	
	public static void main(String[] args) {
		List<Person> persons = new ArrayList<>();
		persons.add(new Person("张三", 20));
		persons.add(new Person("李四", 18));
		persons.add(new Person("王五", 22));
		
		System.out.println("排序前s:");
		for (Person person : persons) {
			System.out.println(person);
		}
		
		//使用lambda表达式实现Comparator接口
		Collections.sort(persons,(p1,p2)->p1.getAge()-p2.getAge());
		
		System.out.println("排序后:");
		for (Person person : persons) {
			System.out.println(person);
		}
	}
}

4.

public class Test2 {

	interface IntConsumer {
		void accept(int value);
	}

	public static void repeat(int n, IntConsumer action) {
		for (int i = 0; i < n; i++) {
			action.accept(i);
		}
	}

	public static void main(String[] args) {
		repeat(10, i -> System.out.println("Countdown : " + (9 - i)));

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值