3.资源文件操作(了解)Properties类
资源文件内容都是k-v格式,并且无论key,value都是String类型
设置属性:
public synchronized Object setProperty(String key, String value)
取得属性:
public String getProperty(String key)
若没有指定key,返回null
public String getProperty(String key, String defaultValue):若没有指定key,返回默认值
将资源内容输入输出到目标终端
输出到目标终端:
public void store(OutputStream out, String comments)
throws IOException
从目标终端中读取数据 public synchronized void load(InputStream inStream) throws IOExcepti
4.Collections工具类
Array-Arrays
Executor-Executors
Collection---Collections
4.1将线程不安全集合包装为线程安全集合(不推荐)
在add,remove等修改方法中试使用同步代码块保证线程安全,效率较低。要使用线程安全集合,推荐使用juc包下的并发集合类(ConcurrentHashMap,CopyOnWriteArrayList)
4.2集合排序
Collections.sort(集合名称)
4.3集合反转
Collections.reverse(集合名称)
4.4Stream数据流(JDK1.8新增)Collection接口
核心方法:取得Stream流
default Stream<E> stream()
常用方法:
1.forEach:集合输出
代码:
package collection;
import java.util.*;
import java.lang.Iterable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.CopyOnWriteArrayList;
public class wl {
public static void main(String[] args) throws Exception {
List<Integer> list = new ArrayList<> ();
Collections.addAll (list, 1, 3, 5, 7, 9, 2, 4, 6, 8, 10);
list.forEach (System.out::println);
}
}
结果:1
3
5
7
9
2
4
6
8
10
2.Filter:数据过滤
package collection;
import java.util.*;
import java.util.stream.Stream;
public class wl {
public static void main(String[] args) throws Exception {
List<Integer> list = new ArrayList<> ();
Collections.addAll (list, 1, 3, 5, 7, 9, 2, 4, 6, 8, 10);
//取得Stream对象
Stream<Integer> stream=list.stream ();
//统计出集合所有偶数的个数
System.out.println (stream.filter (e->e%2!=0).count ());
}
}
结果: 5
3.取得最大最小值:max/min
package collection;
import java.util.*;
import java.util.stream.Stream;
public class wl {
public static void main(String[] args) throws Exception {
List<Integer> list = new ArrayList<> ();
Collections.addAll (list, 1, 3, 5, 7, 9, 2, 4, 6, 8, 10);
//取得Stream对象
Stream<Integer> stream=list.stream ();
//统计出集合所有偶数的个数
System.out.println (stream.max (Integer::compareTo).get ());
}
}
结果:10
Map/Reduce模型
map():数据前期处理操作
reduce():数据处理后的收集操作
package collection;
import java.util.*;
import java.util.stream.Stream;
class Goods{
private String name;
private Integer count;
private Double price;
public Goods(String name, Integer count, Double price) {
this.name = name;
this.count = count;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
@Override
public String toString() {
return "Goods{" +
"name='" + name + '\'' +
", count=" + count +
", price=" + price +
'}';
}
}
public class wl {
public static void main(String[] args) throws Exception {
List<Goods> list = new ArrayList<> ();
//添加购物车
list.add (new Goods ("戴尔",100,5000.0));
list.add (new Goods ("苹果",100,8000.0));
Double allPrice=list.stream ()
.map (obj->obj.getCount ()*obj.getPrice ())
.reduce ((sum,x)->sum+x)
.get ();
System.out.println (allPrice);
}
}
结果:1300000.0