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总结
- 所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ]
- 所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ]
- 所有的List中可以有null元素,例如[ tom,null,1 ]
- 基于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());
}
}