方法类型,模块与Stream流

1.方法可分为静态方法和成员方法,通过有无static来区分,静态方法可通过类名称.方法名直接调用,成员方法可以必须先new出来一个实现类,然后才能使用。

2.方法引用:格式为:

静态:方法名(类名称: :方法名)

成员方法ming:方法ming(对象名::方法名)

public interface onlyone {//接口
	public abstract int getabs(int a) ;//抽象方法
	//public abstract void sleep();//抽象方法
}
public static void main(String[] args) throws IOException {
	method(num -> {
		int result;
		if(num>=0)
			result=num;
		else
			result=-num;
		return result;
	});
	method(Math::abs);//通過類名稱引用靜態方法
}
public static void method(onlyone one) {
	int result=one.getabs(-25);
	System.out.println(result);
}

3。Streaml流式操作

public static void main(String[] args) throws IOException {
	ArrayList<String>recordlist=new ArrayList<>();
	recordlist.add("y,98");
	recordlist.add("k,99");
	recordlist.add("g,87");
	recordlist.stream().map(s->s.split(",")[1]).map(Integer::parseInt)//將一大串代碼用一句代碼解決
	.filter(n->n>90).forEach(System.out::println);
}

a.映射方法:(map)把老对象映射到新对象

public static void main(String[] args) throws IOException {
	ArrayList<String>recordlist=new ArrayList<>();
	recordlist.add("y,98");
	recordlist.add("k,99");
	recordlist.add("g,87");
//	recordlist.stream().map(s->s.split(",")[1]).map(Integer::parseInt)//將一大串代碼用一句代碼解決
//	.filter(n->n>90).forEach(System.out::println);
	System.out.println("=========");
	Stream<String> stream1=recordlist.stream().map((String str)->{
		String[] array=str.split(",");
		String result=array[1];
		return result;
	});
	
	Stream<String> stream2=recordlist.stream().map(s->s.split(",")[1]);
	//for(int i=0;i<recordlist.size();i++) {
		//System.out.println(recordlist.get(i));
	}

b,过滤方法filter(能产生boolean结果的Lambda),若为true,则留下元素,否则剔除元素

c,forEach(Lambda)表达式:对流当中的每一个元素进行操作,Lambda表达式必须能够一次消费一个参数,且不产生数据结果

4,并发流parallelStream

对流当中的元素,使用多个人进行处理,就是并发流,不会出现多个人抢到同一个元素的情况

public static void main(String[] args) throws IOException {
	ArrayList<String>list=new ArrayList<>();
	for(int i=0;i<20;i++) {
		list.add("hello-"+i);
	}
	list.parallelStream().forEach(System.out::println);
	}

如果已经使用了普通流,那么使用一个parallel也会变成一个并发流

list.stream().parallel().forEach(System.out::println);

5,module-info.java  java中转门用来描述模块的文件,里面写的是模块描述信息,格式如下

moudule 模块名称{

exports 对外暴露的包路径(其他模块可以访问的包都在这里面)

requires 需要依赖其他模块的名称(代码的运行需要其他模块的帮助)

}

猜你喜欢

转载自blog.csdn.net/printfxgd/article/details/81304130