最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

javaLambda表達(dá)式在集合中的運用

2022-09-19 09:03 作者:虛云幻仙  | 我要投稿

/**
* 使用Lambda表達(dá)式在集合中的運用
*/

public class TestLambda4 {
? ?public static void main(String[] args) {
? ? ? ?List<Integer> list = new ArrayList<>();
? ? ? ?list.add(1);
? ? ? ?list.add(2);
? ? ? ?list.add(3);
? ? ? ?list.add(4);
? ? ? ?for (int i :
? ? ? ? ? ? ? ?list) {
? ? ? ? ? ?System.out.print(i+", ");
? ? ? ?}
? ? ? ?//使用for-each遍歷
? ? ? ?//結(jié)果為:1, 2, 3, 4,

? ? ? ?System.out.println();

? ? ? ?list.forEach(new Consumer<Integer>() {
? ? ? ? ? ?//使用集合的forEach(Consumer<?> action)方法遍歷,consumer消費者,Consumer接口為函數(shù)式接口
? ? ? ? ? ?@Override
? ? ? ? ? ?public void accept(Integer integer) {
? ? ? ? ? ? ? ?//list.forEach(Consumer)方法會將每個元素傳給 Consumer的accept()方法,在accept()方法中規(guī)定要對遍歷的元素進(jìn)行什么操作
? ? ? ? ? ? ? ?System.out.print(integer+", ");
? ? ? ? ? ?}
? ? ? ?});
? ? ? ?//結(jié)果為:1, 2, 3, 4,
? ? ? ?//作用同for(){},只是將{}的內(nèi)容放到了Consumer實現(xiàn)類的accept()方法中

? ? ? ?System.out.println();

? ? ? ?list.forEach(a->{
? ? ? ? ? ?System.out.print(a+", ");
? ? ? ?});
? ? ? ?//.forEach(Consumer<?> action)的()中直接寫表達(dá)式()->{},即形參Consumer<?> action = ()->{}
? ? ? ?//accept(T)方法是有參數(shù)的,所以用(a)代表參數(shù),{}內(nèi)用有參的print(a)
? ? ? ?//結(jié)果為:1, 2, 3, 4,

? ? ? ?System.out.println();

? ? ? ?list.forEach(System.out::print);
? ? ? ?//進(jìn)一步簡寫,引用System.out對象的print(a)方法實現(xiàn)Consumer接口的accept(a)方法
? ? ? ?//結(jié)果為:1234

? ? ? ?System.out.println();

? ? ? ?List<String> sts = new ArrayList<>();
? ? ? ?sts.add("a");
? ? ? ?sts.add("b");
? ? ? ?sts.add("c");
? ? ? ?sts.add("b");
? ? ? ?sts.forEach(System.out::print);
? ? ? ?//abcb
? ? ? ?System.out.println();

? ? ? ?//通常刪除元素
// ? ? ? ?for (Iterator<String> it = sts.iterator();it.hasNext();){
// ? ? ? ? ? ?if ("b".equals(it.next())){
// ? ? ? ? ? ? ? ?it.remove();
// ? ? ? ? ? ?}
// ? ? ? ?}
// ? ? ? ?sts.forEach(System.out::print);
// ? ? ? ?//結(jié)果:ac
// ? ? ? ?System.out.println();


// ? ? ? ?sts.removeIf(new Predicate<String>() {
// ? ? ? ? ? ?//集合的.removeIf(Predicate<?> filter)方法,predicate謂語filter篩選,Predicate接口為函數(shù)式接口
// ? ? ? ? ? ?@Override
// ? ? ? ? ? ?public boolean test(String s) {
// ? ? ? ? ? ? ? ?//.test()將集合中的每個元素傳進(jìn)來,執(zhí)行方法體,符合條件返回true刪除該元素
// ? ? ? ? ? ? ? ?return "b".equals(s);
// ? ? ? ? ? ?}
// ? ? ? ?});
// ? ? ? ?sts.forEach(System.out::print);
// ? ? ? ?//結(jié)果:ac
// ? ? ? ?System.out.println();


// ? ? ? ?sts.removeIf(s->"b".equals(s));
? ? ? ?//參數(shù)->方法 ? ?test()方法需要一個參數(shù)并且返回boolean,equals()方法需要一個參數(shù)并且返回boolean

? ? ? ?sts.removeIf("b"::equals);
? ? ? ?//簡寫為 對象"b" :: 方法equals
? ? ? ?sts.forEach(System.out::print);
? ? ? ?//結(jié)果:ac
? ? ? ?System.out.println();
? ?}
}
class TestLambda5{
? ?//創(chuàng)建容器的元素
? ?String st;

? ?public TestLambda5(String st) {
? ? ? ?this.st = st;
? ?}

? ?@Override
? ?public String toString() {
? ? ? ?return st;
? ?}

? ?public static void main(String[] args) {
? ? ? ?List<TestLambda5> t5 = new ArrayList<>();
? ? ? ?t5.add(new TestLambda5("d"));
? ? ? ?t5.add(new TestLambda5("b"));
? ? ? ?t5.add(new TestLambda5("c"));
? ? ? ?t5.add(new TestLambda5("a"));

// ? ? ? ?t5.sort(new Comparator<TestLambda5>() {
// ? ? ? ? ? ?@Override
// ? ? ? ? ? ?public int compare(TestLambda5 o1, TestLambda5 o2) {
// ? ? ? ? ? ? ? ?return o1.st.compareTo(o2.st);
// ? ? ? ? ? ?}
// ? ? ? ?});
// ? ? ? ?//使用比較器Comparator
// ? ? ? ?t5.forEach(System.out::print);
// ? ? ? ?//結(jié)果:abcd
// ? ? ? ?System.out.println();


? ? ? ?t5.sort((o1,o2)->o1.st.compareTo(o2.st));
? ? ? ?t5.forEach(t-> System.out.print(t.st));
? ? ? ?//結(jié)果為:abcd
? ? ? ?//compareTo方法屬于形參o1/o2,不能改寫成o1::compareTo的形式


? ?}
}

javaLambda表達(dá)式在集合中的運用的評論 (共 條)

分享到微博請遵守國家法律
阳信县| 盐源县| 建始县| 三河市| 丰城市| 闻喜县| 仁寿县| 万载县| 陇南市| 建始县| 辰溪县| 达尔| 呈贡县| 辉县市| 九江市| 大冶市| 镇安县| 自贡市| 徐水县| 即墨市| 泰顺县| 鄂伦春自治旗| 沙雅县| 长乐市| 蚌埠市| 温州市| 巨野县| 普洱| 长汀县| 宁阳县| 老河口市| 金堂县| 德州市| 衡阳市| 商丘市| 得荣县| 贵港市| 汝南县| 通道| 轮台县| 秀山|