JAVA类集---------5

博客主要介绍了资源文件操作,如Properties类的属性设置与获取,以及资源内容的输入输出。还提及Collections工具类,包括将线程不安全集合包装为安全集合、集合排序与反转等。此外,介绍了Stream数据流的常用方法,以及Map/Reduce模型的数据处理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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包下的并发集合类(ConcurrentHashMapCopyOnWriteArrayList

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值