Java9.16(下)

Myset类

//接上一篇
        Set set3 = new HashSet();
		set3.add("123");
		set3.add("456");
		
		//addAll 添加集合
		Set set4 = new HashSet();
		set4.addAll(set3);
//		System.out.println("set4.isEmpty():"+set4.isEmpty());
//		set4.forEach(System.out::println);
		
//		set4.clear();
//		System.out.println("set4.isEmpty():"+set4.isEmpty());
//		System.out.println("set4.contains(\"123\"):  "+set4.contains(new String("123")));
//		
//		set4.add("789");
//		System.out.println("set4.containsAll(set3): "+set4.containsAll(set3));
//		
//		set3.add("999");
//		System.out.println("set4.containsAll(set3): "+set4.containsAll(set3));
	
//		Set set5 = new HashSet();
//		set5.add(new Integer(100));
//		set5.add(200);
//		set5.add(300);
//		set5.add(400);
//		set5.stream().filter((Object o) ->{
//			Integer i = (Integer) o;
//			return i>200;
//		}).forEach(System.out::println);
		
		Set set6 = new HashSet();
		set6.add(1);
		set6.add(2);
		set6.add(3);
		set6.add(4);
		
		//map 
//		set6.stream().map((obj)->{
//			Integer i = (Integer) obj;
//			return i+2;
//		}).forEach(System.out::println);
		
//		int sum = 0;
//		for (Iterator iterator = set6.iterator(); iterator.hasNext();) {
//			Object object = (Object) iterator.next();
//			
//		}
		
		//终止操作
		Optional op = set6.stream().reduce((p1,p2)->{
			Integer i1 = (Integer) p1;
			Integer i2 = (Integer) p2;
//			System.out.println("i1:"+i1);
//			System.out.println("i2:"+i2);
			return i1+i2;
		});
//		System.out.println(op.get());

		String str = null;
		if(str != null){
			System.out.println(str.length());
		}
		
		Optional<String> optional = Optional.ofNullable(str);
		System.out.println(optional.orElse("strs是空的"));
	}
}

List总结

  1. 所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ]
  2. 所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ]
  3. 所有的List中可以有null元素,例如[ tom,null,1 ]
  4. 基于Array的List(Vector,ArrayList)实现一个数组,适合查询,而LinkedList(链表),适合添加,删除操作

MyList类(Array)

package com.neuedu.train18.collections;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class MyList {
	public static void main(String[] args) {
		//List的构造 ,泛型在编译阶段有效
		List<String> list = new ArrayList();
		list.add("张三");
		list.add("李四");
		list.add("李四");
		list.add("李四");
		list.add("李四");
		list.add("李四");
		list.add(null);
		list.add(null);
		list.add(null);
		list.add(null);
		list.add("王五");
		
		//遍历
//		Iterator it = list.iterator();
//		while(it.hasNext()){
//			System.out.println(it.next());
//		}

//		for (Iterator<String> it = list.iterator(); it.hasNext();) {
//			String string = it.next();
//			System.out.println(string);
//			
//		}
//		
//		System.out.println("list.get(0) :"+list.get(0));
//		System.out.println("list.get(1) :"+list.get(1));
//		System.out.println("list.get(2) :"+list.get(2));
//		System.out.println("list.get(3) :"+list.get(3));
		//通过size 遍历
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
			
		System.out.println("list.indexOf(\"李四\"):"+list.indexOf("李四"));
		System.out.println("list.lastIndexOf(\"李四\"):"+list.lastIndexOf("李四"));
		
		List<String> list2 = new ArrayList();
		list2.add("0");
		list2.add("1");
		list2.add("2");
		list2.add("3");
		list2.set(2, "替换");//替换
		System.out.println(list2);
		
		//subList截取
		List subList = list2.subList(0, 1);//左开右闭
		System.out.println(subList);
		
		Object[] array = list2.toArray();
		for (int i = 0; i < array.length; i++) {
			System.out.println("array{}:"+array[i]);
			
		}
	}
}

MyLinkedList类

package com.neuedu.train18.collections;

import java.util.LinkedList;
import java.util.Iterator;
import java.util.List;
public class MyLinkedList {
	
	public static void main(String[] args) {
		List<String> linkedList = new LinkedList<>();
		
		linkedList.add("张三");
		linkedList.add("李四");
		linkedList.add("王五");
		System.err.println(linkedList); 
		

	}	
}

MyMap类

  • Student
package com.neuedu.train18.collections;

public class Student {

	private String name;
	private Integer age;
	
	public Student(String name, Integer age) {
		super();
		this.name = name;
		this.age = age;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}
}
  • MyMap
package com.neuedu.train18.collections;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class MyMap {
	public static void main(String[] args) {
//		复杂方法
//		List<Student> stus = new ArrayList();
//		
//		stus.add(new Student("张飞",60));
//		stus.add(new Student("刘备",61));
//		stus.add(new Student("关羽",62));
		
		//需求,查询关羽的年龄
//		for (Iterator<Student> It = stus.iterator(); It.hasNext();) {
//			Student student = It.next();
//			if("关羽".equals(student.getName())){
//				System.out.println(student.getAge());
//			}
//			
//		}	

		Map<String ,Student> stus = new HashMap();
		stus.put("张飞", new Student("张飞",60));
		stus.put("刘备", new Student("刘备",61));
		stus.put("关羽", new Student("关羽",62));
			
		Student gy = stus.get("关羽");	
		System.out.println("gy.getAge() :"+gy.getAge());
	}
}

作业:
定义一个Map ,存储几个学生信息,已姓名作为key,将名字有3个字母的单独查询出来,放到List集合中,计算过滤后的的年龄和

package iii;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;

public class MyMap {
  static String str1 = "三个字";
  public static void main(String[] args) {
   Map<String, ooo> stus = new HashMap();
   stus.put("庄周", new ooo("庄周",60));
   stus.put("司马懿", new ooo("司马懿",61));
   stus.put("云中君", new ooo("云中君",62));
   stus.put("刘备", new ooo("刘备",61));
   stus.put("孙尚香", new ooo("孙尚香",63));
   stus.put("蔡文姬", new ooo("蔡文姬",64));
   stus.put("李元芳", new ooo("李元芳",65));
   stus.put("杨玉环", new ooo("杨玉环",66));
   
   Set<String> set = stus.keySet();
   List<Integer> list = new ArrayList();
   set.forEach((String key)->{
   if(key.length() == 3) {
   list.add(stus.get(key).getAge());

     System.out.print("姓名:"+(stus.get(key).getName()));
     System.out.println("年龄:"+(stus.get(key).getAge()));
     }
     
   });
    Optional op = list.stream().reduce((p1,p2)->{
    Integer i1 = (Integer) p1;
    Integer i2 = (Integer) p2;
    return i1 +i2; 
    });
    System.out.println("过滤后的年龄之和为:"+op.get());
    }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值