为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 第一行代码 java-源代码-第13章【课程代码】java类集框架

第一行代码 java-源代码-第13章【课程代码】java类集框架

2017-12-21 34页 doc 149KB 107阅读

用户头像

is_353097

暂无简介

举报
第一行代码 java-源代码-第13章【课程代码】java类集框架第一行代码 java-源代码-第13章【课程代码】java类集框架 第十三章:Java类集框架 13.3 List子接口 范例13-1,List基本操作。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; public class TestDemo { public static void main(String[] args) { // 从JDK 1.5开始应用了泛型,从而保证集合中所有的数据类型都一致 L...
第一行代码 java-源代码-第13章【课程代码】java类集框架
第一行代码 java-源代码-第13章【课程代码】java类集框架 第十三章:Java类集框架 13.3 List子接口 范例13-1,List基本操作。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; public class TestDemo { public static void main(String[] args) { // 从JDK 1.5开始应用了泛型,从而保证集合中所有的数据类型都一致 List all = new ArrayList() ; // 实例化List集合 System..println("长度," + all.size() + ",是否为空," + all.isEmpty()); out all.add("Hello"); // 保存数据 all.add("Hello"); // 保存重复元素 all.add("World"); // 保存数据 System.out.println("长度," + all.size() + ",是否为空," + all.isEmpty()); // Collection接口定义size()方法取得了集合长度,List子接口扩充get()方法根据索引取得了数据 for (int x = 0; x < all.size(); x++) { String str = all.get(x); // 取得索引数据 System.out.println(str); // 直接输出内容 } } } 范例13-2,Collection接口实例化操作 package com.yootk.demo; import java.util.ArrayList; import java.util.Collection; public class TestDemo { public static void main(String[] args) { Collection all = new ArrayList(); all.add("Hello"); // 保存数据 all.add("Hello"); // 重复元素 all.add("World"); // 保存数据 // Collection不具备List接口的get()方法,所以必须将其转化为对象数组 Object obj[] = all.toArray(); // 变为对象数组取得 for (int x = 0; x < obj.length; x++) { // 采用循环输出 String str = (String) obj[x] ; // 强制向下转型 System.out.println(str); // 输出数据 } } 第(1)页 共(18)页 } 范例13-3,在集合里面保存对象。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; class Book { // 创建一个自定义类 private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } @Override public boolean equals(Object obj) { // 必须覆写此方法,否则remove()、contains()无法使用 if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof Book)) { return false; } Book book = (Book) obj; if (this.title.equals(book.title) && this.price == book.price) { return true; } return false; } @Override public String toString() { return "书名," + this.title + ",价格," + this.price + "\n"; } } public class TestDemo { public static void main(String[] args) { List all = new ArrayList(); // List接口对象 all.add(new Book("Java开发实战经典", 79.8)); // 保存自定义类对象 all.add(new Book("Java Web开发实战经典", 69.8)); // 保存自定义类对象 all.add(new Book("Oracle开发实战经典", 89.8)); // 保存自定义类对象 all.remove(new Book("Oracle开发实战经典", 89.8)); // 需要使用equals()方法 System.out.println(all); } } 第(2)页 共(18)页 范例13-4,使用Vector。 package com.yootk.demo; import java.util.List; import java.util.Vector; public class TestDemo { public static void main(String[] args) { // 由于都是利用子类为父类实例化,所以不管使用哪个子类,List接口功能不变 List all = new Vector() ; // 实例化List集合 System.out.println("长度," + all.size() + ",是否为空," + all.isEmpty()); all.add("Hello"); // 保存数据 all.add("Hello"); // 保存重复元素 all.add("World"); // 保存数据 System.out.println("长度," + all.size() + ",是否为空," + all.isEmpty()); // Collection接口定义了size()方法取得集合长度,List子接口扩充了get()方法,根据索引取得数据 for (int x = 0; x < all.size(); x++) { String str = all.get(x); // 取得索引数据 System.out.println(str); // 直接输出内容 } } } 13.4 Set子接口 Set子接口 范例13-5,观察HashSet子类的特点。 package com.yootk.demo; import java.util.HashSet; import java.util.Set; public class TestDemo { public static void main(String[] args) { Set all = new HashSet(); // 实例化Set接口 all.add("jixianit"); // 保存数据 all.add("mldn"); // 保存数据 all.add("yootk"); // 保存数据 all.add("yootk"); // 重复数据 System.out.println(all); // 直接输出集合 } } 范例13-6,使用TreeSet子类。 package com.yootk.demo; import java.util.Set; import java.util.TreeSet; public class TestDemo { 第(3)页 共(18)页 public static void main(String[] args) { Set all = new TreeSet(); // 实例化Set接口 all.add("jixianit"); // 保存数据 all.add("mldn"); // 保存数据 all.add("yootk"); // 保存数据 all.add("yootk"); // 重复数据 System..println(all); // 直接输出集合 out } } 范例13-7,利用TreeSet保存自定义类对象。 package com.yootk.demo; import java.util.Set; import java.util.TreeSet; class Book implements Comparable { // 需要实现Comparable接口 private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } @Override public String toString() { return "书名," + this.title + ",价格," + this.price + "\n"; } @Override public int compareTo(Book o) { // 排序方法,比较所有属性 if (this.price > o.price) { return 1; } else if (this.price < o.price) { return -1; } else { return this.title.compareTo(o.title); // 调用String类的比较大小 } } } public class TestDemo { public static void main(String[] args) { Set all = new TreeSet(); // 实例化Set接口 all.add(new Book("Java开发实战经典", 79.8)); // 保存数据 all.add(new Book("Java开发实战经典", 79.8)); // 全部信息重复 all.add(new Book("JSP开发实战经典", 79.8)); // 价格信息重复 all.add(new Book("Android开发实战经典", 89.8)); // 都不重复 System.out.println(all); } } 第(4)页 共(18)页 范例13-8,利用HashSet子类保存自定义类对象。 package com.yootk.demo; import java.util.Set; import java.util.HashSet; class Book { private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } @Override public int hashCode() { final int prime = 31; int result = 1; long temp; temp = Double.doubleToLongBits(price); result = prime * result + (int) (temp ^ (temp >>> 32)); result = prime * result + ((title == null) ? 0 : title.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Book other = (Book) obj; if (Double.doubleToLongBits(price) != Double.doubleToLongBits(other.price)) return false; if (title == null) { if (other.title != null) return false; } else if (!title.equals(other.title)) return false; return true; } @Override public String toString() { return "书名," + this.title + ",价格," + this.price + "\n"; } } public class TestDemo { public static void main(String[] args) { Set all = new HashSet(); // 实例化Set接口 all.add(new Book("Java开发实战经典", 79.8)); // 保存数据 all.add(new Book("Java开发实战经典", 79.8)); // 全部信息重复 第(5)页 共(18)页 集合输出 all.add(new Book("JSP开发实战经典", 79.8)); // 价格信息重复 all.add(new Book("Android开发实战经典", 89.8)); // 都不重复 System.out.println(all); } } 13.5 集合输出 范例13-9,使用Iterator输出集合。 package com.yootk.demo; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class TestDemo { public static void main(String[] args) { List all = new ArrayList() ; // 实例化List集合 all.add("Hello"); // 保存数据 all.add("Hello"); // 保存重复元素 all.add("World"); // 保存数据 Iterator iter = all.iterator() ; // 实例化Iterator接口 while (iter.hasNext()) { // 判断是否有数据 String str = iter.next() ; // 取出当前数据 System.out.println(str); // 输出数据 } } } 范例13-10,观察删除问题。 package com.yootk.demo; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class TestDemo { public static void main(String[] args) { List all = new ArrayList() ; // 实例化List集合 第(6)页 共(18)页 all.add("Hello"); // 保存重复元素 all.add("mldn"); // 保存数据 all.add("World"); // 保存数据 all.add("Yootk"); // 保存数据 Iterator iter = all.iterator() ; // 实例化Iterator接口 while (iter.hasNext()) { // 判断是否有数据 String str = iter.next() ; // 取出当前数据 if ("mldn".equals(str)) { all.remove(str) ; // 此代码一执行,输出将中断 } System.out.println(str); // 输出数据 } } } 范例13-11,完成双向迭代。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class TestDemo { public static void main(String[] args) { List all = new ArrayList() ; // 实例化List接口对象 all.add("www.jixianit.com") ; // 向集合保存数据 all.add("www.yootk.com") ; // 向集合保存数据 all.add("www.mldn.cn") ; // 向集合保存数据 System.out.print("由前向后输出,"); // 向集合保存数据 ListIterator iter = all.listIterator() ; // 实例化ListIterator接口 while (iter.hasNext()) { // 由前向后迭代 String str = iter.next() ; // 取出当前数据 System.out.print(str + "、"); // 输出数据 } System.out.print("\n由后向前输出,"); while (iter.hasPrevious()) { // 由后向前迭代 String str = iter.previous() ; // 取出当前数据 System.out.print(str + "、"); // 输出数据 } } } 范例13-12,利用foreach输出集合数据。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; public class TestDemo { public static void main(String[] args) { 第(7)页 共(18)页 List all = new ArrayList() ; // 实例化List接口对象 all.add("www.jixianit.com") ; // 向集合保存数据 all.add("www.yootk.com") ; // 向集合保存数据 all.add("www.mldn.cn") ; // 向集合保存数据 // 集合中包含的数据都是String型,所以需要使用String接收集合中的每一个数据 for (String str : all) { // for循环输出 System..println(str); out } } } 范例13-13,利用Enumeration接口输出数据。 package com.yootk.demo; import java.util.Enumeration; import java.util.Vector; public class TestDemo { public static void main(String[] args) { Vector all = new Vector() ; // 实例化Vector子类对象 all.add("www.jixianit.com") ; // 向集合保存数据 all.add("www.yootk.com") ; // 向集合保存数据 all.add("www.mldn.cn") ; // 向集合保存数据 Enumeration enu = all.elements() ; // 取得Enumeration接口对象 while(enu.hasMoreElements()) { // 判断是否有数据 String str = enu.nextElement() ; // 取出当前数据 System.out.println(str); // 输出数据 } } } 第(8)页 共(18)页 13.6 偶对象保存:Map接口 Map接口 范例13-14,观察HashMap子类的使用。 package com.yootk.demo; import java.util.HashMap; import java.util.Map; public class TestDemo { public static void main(String[] args) { Map map = new HashMap(); // 定义Map集合 map.put("壹", 1); // 保存数据 map.put("贰", 2); // 保存数据 叄 map.put("", 3); // 保存数据 叄 map.put("", 33); // key数据重复 map.put("空", null); // value为null map.put(null, 0) ; // key为null System.out.println(map); // 输出全部map集合 } } 范例13-15,查询操作。 package com.yootk.demo; import java.util.HashMap; import java.util.Map; public class TestDemo { public static void main(String[] args) { Map map = new HashMap(); // 定义Map集合 map.put("壹", 1); // 保存数据 map.put("贰", 2); // 保存数据 叄 map.put("", 3); // 保存数据 叄 map.put("", 33); // key数据重复 map.put("空", null); // value为null map.put(null, 0) ; // key为null System.out.println(map.get("壹")); // key存在返回value 陸 System.out.println(map.get("")); // 如果key不存在,返回null System.out.println(map.get(null)); // key存在 } } 范例13-16,使用Hashtable。 package com.yootk.demo; import java.util.Hashtable; import java.util.Map; 第(9)页 共(18)页 public class TestDemo { public static void main(String[] args) { Map map = new Hashtable(); // 定义Map集合 map.put("壹", 1); // 保存数据 map.put("贰", 2); // 保存数据 叄 map.put("", 3); // 保存数据 叄 map.put("", 33); // key数据重复 System.out.println(map.get("壹")); // key存在返回value 陸 System.out.println(map.get("")); // key不存在,返回null } } 范例13-17,利用Iterator实现Map接口的输出。 package com.yootk.demo; import java.util.Hashtable; import java.util.Iterator; import java.util.Map; import java.util.Set; public class TestDemo { public static void main(String[] args) { Map map = new Hashtable(); // 定义Map集合 map.put("壹", 1); // 保存数据 map.put("贰", 2); // 保存数据 叄 map.put("", 3); // 保存数据 叄 map.put("", 33); // key数据重复 // 将Map集合变为Set集合,目的是使用iterator()方法,注意泛型的统一 Set> set = map.entrySet() ; Iterator> iter = set.iterator() ;// 取得Iterator实例 while (iter.hasNext()) { // 迭代输出 Map.Entry me = iter.next() ; // 取出Map.Entry System.out.println(me.getKey() + " = " + me.getValue()); // 输出数据 } } } 范例13-18,使用自己定义的类作为Map集合的key。 package com.yootk.demo; import java.util.HashMap; import java.util.Map; class Book { // 此类为要保存的key类型 private String title ; // 只定义一个属性 public Book(String title) { // 构造方法接收数据 this.title = title ; } @Override public String toString() { 第(10)页 共(18)页 return "书名," + this.title ; } @Override public int hashCode() { // 取得对象编码 final int prime = 31; int result = 1; result = prime * result + ((title == null) ? 0 : title.hashCode()); return result; } @Override public boolean equals(Object obj) { // 进行对象比较 if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Book other = (Book) obj; if (title == null) { if (other.title != null) return false; } else if (!title.equals(other.title)) return false; return true; } } public class TestDemo { public static void main(String[] args) { Map map = new HashMap() ; // 实例化Map接口集合 map.put(new Book("Java开发"),new String("Java")) ; // 向Map接口保存数据 System.out.println(map.get(new Book("Java开发"))); // 根据key取得value } } 13.7 Stack子类 Stack子类 范例13-19,观察栈的操作。 package com.yootk.demo; import java.util.Stack; public class TestDemo { public static void main(String[] args) { Stack all = new Stack(); all.push("www.jixianit.com") ; all.push("www.yootk.com") ; all.push("www.mldn.cn") ; System.out.println(all.pop()); System.out.println(all.pop()); 第(11)页 共(18)页 System.out.println(all.pop()); System.out.println(all.pop()); // EmptyStackException } } 13.8 Properties子类 Properties子类 范例13-20,属性的基本操作。 package com.yootk.demo; import java.util.Properties; public class TestDemo { public static void main(String[] args) { Properties pro = new Properties(); // 实例化类对象 pro.setProperty("BJ", "北京"); // 保存属性信息 pro.setProperty("TJ", "天津"); // 保存属性信息 System.out.println(pro.getProperty("BJ")); // 根据key取得属性信息 System.out.println(pro.getProperty("GZ")); // 根据key取得属性信息 System.out.println(pro.getProperty("GZ", "没有此记录"));// 没有key返回默认值 } } 范例13-21,将属性信息保存在文件里。 package com.yootk.demo; import java.io.File; import java.io.FileOutputStream; import java.util.Properties; public class TestDemo { public static void main(String[] args) throws Exception { Properties pro = new Properties(); // 实例化类对象 pro.setProperty("BJ", "北京"); // 保存属性信息 pro.setProperty("TJ", "天津"); // 保存属性信息 // 一般而言后缀可以随意设置,但是来讲,既然是属性文件,后缀就必须是*.properties,这样做也是为了 与国际化对应 // 在进行属性信息保存时如果属性内容为中文则会自动进行转码操作 pro.store(new FileOutputStream(new File("E:" + File.separator + "area.properties")), "Area Info"); } } 范例13-22,通过文件流读取属性内容。 package com.yootk.demo; import java.io.File; import java.io.FileInputStream; import java.util.Properties; 第(12)页 共(18)页 public class TestDemo { public static void main(String[] args) throws Exception { Properties pro = new Properties(); // 实例化类对象 pro.load(new FileInputStream(new File("E:" + File.separator + "area.properties"))); System.out.println(pro.getProperty("BJ")); // 根据key取得value } } 13.9 Collections工具类 Collections工具类 范例13-23,为集合追加数据。 package com.yootk.demo; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化集合对象 // 利用Collections类的方法向集合保存多个数据 Collections.(all, "jixianit", "mldn", "yootk", "mldnjava", "lixinghua"); addAll Collections.(all); // 集合反转 reverse System.out.println(all); // 直接输出集合对象 } } 13.10 数据流 数据流 范例13-24,利用forEach()方法输出。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 all.forEach(System.out::println); // 引用forEach输出 } } 第(13)页 共(18)页 范例13-25,取得Stream对象。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 Stream stream = all.stream() ; // 取得了Stream类的对象 System.out.println(stream.count()); // 取得数据个数 } } 范例13-26,取消集合中的重复数据。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 Stream stream = all.stream() ; // 取得Stream类的对象 // 去掉重复数据后形成新的List集合数据,里面不包含重复内容的集合 List newAll = stream.distinct().collect(Collectors.toList()) ; newAll.forEach(System.out :: println); // 取得消除重复数据后的内容 } } 范例13-27,数据过滤。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class TestDemo { 第(14)页 共(18)页 public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据,大写字母 all.add("www.yootk.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 Stream stream = all.stream() ; // 取得Stream类的对象 // 去掉重复元素后执行数据过滤操作,在过滤中由于需要断言型函数式接口,所以引用contains()方法 // 将满足过滤条件的数据利用收集器保存在新的List集合中 List newAll = stream.distinct(). filter((x) -> x.contains("t")).collect(Collectors.toList()); newAll.forEach(System.out :: println); // 取得消除重复数据后的内容 } } 范例13-27,数据处理后过滤。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据,大写字母 all.add("www.yootk.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 Stream stream = all.stream() ; // 取得Stream类的对象 // 去掉重复元素后执行数据过滤操作,在对集合中数据操作时将每条数据统一转为小写 // 在过滤中由于需要断言型函数式接口,所以引用contains()方法,此时只判断小写字母 // 将满足过滤条件的数据利用收集器保存在新的List集合中 List newAll = stream.distinct().map((x) -> x.toLowerCase()). filter((x) -> x.contains("t")).collect(Collectors.toList()); newAll.forEach(System.out :: println); // 取得消除重复数据后的内容 } } 范例13-28,实现数据流数据的分页操作。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; 第(15)页 共(18)页 public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据,大写字母 all.add("www.yootk.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 Stream stream = all.stream() ; // 取得Stream类的对象 // 去掉重复元素后执行数据过滤操作,在对集合中数据操作时将每条数据统一转为小写 // 在过滤中由于需要断言型函数式接口,所以引用contains()方法,此时只判断小写字母 // 执行完数据过滤后进行数据的分页操作,跳过1行数据,取出1行数据 // 将满足过滤条件的数据利用收集器保存在新的List集合中 List newAll = stream.distinct().map((x) -> x.toLowerCase()). filter((x) -> x.contains("t")).skip(1).limit(1). collect(Collectors.toList()); newAll.forEach(System.out :: println); // 取得消除重复数据后的内容 } } 范例13-29,实现数据的匹配查询。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据,大写字母 all.add("www.yootk.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 Stream stream = all.stream() ; // 取得Stream类的对象 if (stream.anyMatch((x) -> x.contains("yootk"))) { System.out.println("数据存在,"); } } } 范例13-30,设置多个条件。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; import java.util.stream.Stream; 第(16)页 共(18)页 public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); // 实例化List集合接口 all.add("www.JIXIANIT.com"); // 保存数据,大写字母 all.add("www.yootk.com"); // 保存数据 all.add("www.yootk.com"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 all.add("www.mldn.cn"); // 保存数据 Predicate p1 = (x) -> x.contains("yootk") ; // 断言型接口方法引用 Predicate p2 = (x) -> x.contains("mldn") ; // 断言型接口方法引用 Stream stream = all.stream() ; // 取得Stream类的对象 if (stream.anyMatch(p1.or(p2))) { // 两个条件有一个满足即可 System.out.println("数据存在,"); } } } 范例3-31,实现一个MapReduce。 package com.yootk.demo; import java.util.ArrayList; import java.util.List; class Orders { private String pname ; // 商品名称 private double price ; // 商品单价 private int amount ; // 购买数量 public Orders(String pname,double price,int amount) { this.pname = pname ; this.price = price ; this.amount = amount ; } public String getPname() { return pname; } public int getAmount() { return amount; } public double getPrice() { return price; } } public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); all.add(new Orders("Java开发实战经典", 79.8, 200)); // 添加购买记录 all.add(new Orders("JavaWeb开发实战经典", 69.8, 500)); // 添加购买记录 all.add(new Orders("Android开发实战经典", 89.8, 300)); // 添加购买记录 all.add(new Orders("Oracle开发实战经典", 99.0, 800)); // 添加购买记录 all.stream(). map((x) -> x.getAmount() * x.getPrice()). // 用于实现每件商品总价的计算 第(17)页 共(18)页 forEach(System.out::println); // 输出每一个商品的总价 } } 范例13-32,统计处理数据。 public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); all.add(new Orders("Java开发实战经典", 79.8, 200)); // 添加购买记录 all.add(new Orders("JavaWeb开发实战经典", 69.8, 500)); // 添加购买记录 all.add(new Orders("Android开发实战经典", 89.8, 300)); // 添加购买记录 all.add(new Orders("Oracle开发实战经典", 99.0, 800)); // 添加购买记录 double allPrice = all.stream(). map((x) -> x.getAmount() * x.getPrice()). // 用于实现每件商品总价的计算 reduce((sum, m) -> sum + m).get(); // 输出每一个商品的总价 System.out.println("购买图书总价," + allPrice); } } 范例13-33,实现数据的统计操作。 public class TestDemo { public static void main(String[] args) throws Exception { List all = new ArrayList(); all.add(new Orders("Java开发实战经典", 79.8, 200)); // 添加购买记录 all.add(new Orders("JavaWeb开发实战经典", 69.8, 500)); // 添加购买记录 all.add(new Orders("Android开发实战经典", 89.8, 300)); // 添加购买记录 all.add(new Orders("Oracle开发实战经典", 99.0, 800)); // 添加购买记录 DoubleSummaryStatistics dss = all.stream() .mapToDouble((sc) -> sc.getAmount() * sc.getPrice()) // 数据处理 .summaryStatistics(); // 进行数据统计 System.out.println("商品个数," + dss.getCount()); System.out.println("总花费," + dss.getSum()); System.out.println("平均花费," + dss.getAverage()); System.out.println("最高花费," + dss.getMax()); System.out.println("最低花费," + dss.getMin()); } } 第(18)页 共(18)页
/
本文档为【第一行代码 java-源代码-第13章【课程代码】java类集框架】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索