Java-Steam-罕用-API (javascript指什么)
如今17和Java11基本上可以和Java8平分JDK装机比例。上方是我罕用的一些StremAPI操作。除了分组、转换、排序,假设大家还有更多罕用的API可以一同留言交换。
分组
List自动分组事先是Map<Key,List>
![罕用](https://tyye.cn/zb_users/theme/tpure/style/images/lazyload.png)
List<StreamItem>streamList=Stream.of(newStreamItem(1,"k1"),newStreamItem(2,"k1"),newStreamItem(3,"k2"),newStreamItem(4,"k2")).collect(Collectors.toList());System.out.println(streamList);//1.1分组Map<String,List<StreamItem>>streamMap1=streamList.stream().collect(Collectors.groupingBy(StreamItem::getKey));System.out.println(streamMap1);//输入:{k1=[StreamItem{id=1,,},StreamItem{id=2,,}],k2=[StreamItem{id=3,,},StreamItem{id=4,,}]}
List自动分组事先是Map<Key,Object>
//1.2分组只拿第一个Map<String,StreamItem>streamMap2=Stream.of(newStreamItem(1,"k1"),newStreamItem(2,"k2")).collect(Collectors.toMap(StreamItem::getKey,Function.identity()));//假设key重复报:java.lang.IllegalStateException:DuplicatekeySystem.out.println(streamMap2);//输入:{k1=StreamItem{id=1,,},k2=StreamItem{id=2,,}}
分组,在组内排序而后失掉最大值,或许最小值
Comparator<StreamItem>idComparator=Comparator.comparing(StreamItem::getId);Map<String,Optional<StreamItem>>streamMap3=streamList.stream().collect(Collectors.groupingBy(StreamItem::getKey,Collectors.reducing(BinaryOperator.maxBy(idComparator))));System.out.println(streamMap3);//输入{k1=Optional[StreamItem{id=2,,}],k2=Optional[StreamItem{id=4,,}]}
List转换为List
这个也是超级适用的api
List<List<StreamItem>>partitionList=Lists.partition(streamList,2);List<StreamItem>streamList1=partitionList.stream().flatMap(Collection::stream).collect(Collectors.toList());System.out.println(streamList1);//输入[StreamItem{id=1,,},StreamItem{id=2,,},StreamItem{id=3,,},StreamItem{id=4,,}]
排序
排序,自动正序,假设是须要倒序,可以在comparing方法前面再调用reversed方法
//3.1正序List<StreamItem>streamList2=Stream.of(newStreamItem(3,"k1"),newStreamItem(1,"k1"),newStreamItem(2,"k2"))//倒序:Comparator.comparing(StreamItem::getId).reversed().sorted(Comparator.comparing(StreamItem::getId)).collect(Collectors.toList());System.out.println(streamList2);
去重
去重复后,保管最后写入的值
//4.1去重复List<StreamItem>streamList3=Stream.of(newStreamItem(3,"k1"),newStreamItem(1,"k1"),newStreamItem(2,"k2"))//假设只须要保管最大的id的值,就可以先排序,期间复杂度考了团体感觉适用group更优.sorted(Comparator.comparing(StreamItem::getId).reversed()).collect(Collectors.collectingAndThen(Collectors.toCollection(()->//应用set特色去重newTreeSet<>(Comparator.comparing(StreamItem::getKey))),ArrayList::new));System.out.println(streamList3);//输入:[StreamItem{id=3,,},StreamItem{id=2,,}]
其余罕用API
java api是什么意思
就是指那套基本类库。 没有那套库,没有这套编程接口,你编写应用程序将不是一般地困难。 作为Sun开发的Java程序,用于Java编程人员使用的程序接口,并不是说使用Java和接口有关,而是表示Java所提供的现成的类库,供编程人员使用。 这与 Win32 中的 dll 文件有点像,封装了好多函数,只暴露也函数名、参数等信息,不提供具体实体,暴露出来的这些就称为API了。 也就是说 Java 也是封装了好多的方法,提供了些方法名和参数等信息,便于别人使用啊。 由于Java是开源的,还可是看到类库中方法的具体实现。 *这个文档是让你查看那些你要或者将要使用的类的定义,属性,方法集,还有相关参数的说明,以及一些例子,也就是说如果你忘记或不知道某个类的用法,可以查这个参考书,但是如果程序出错,如果不是类使用错误,这个文档基本上帮不上忙的。
java中的API是作什么用的?为什么用过时的API就无法编译?Xlint:deprecation是什么?要重新下载才能使用吗?
使用应用编程接口(API)构建业务是实现开放式业务结构的关键技术,也是下一代网络区别于传统电信网的主要特点之一。 目前,关于下一代网络的开放式业务API标准主要包括:由Parlay组织、3GPP和ETSI SPAN共同制定的Parlay/OSA API以及由SUN公司在Java平台上推出的JAIN API。 Parlay API是由Parlay组织定义的便于业务开发者快速创建电信业务的应用编程接口,自1999年成立以来,Parlay组织已制定了4个版本的Parlay协议。 开放式业务结构(OSA)是3GPP制定的多媒体业务框架,选定Parlay作为其开放式业务接口API。 两者结合的Parlay/OSA API独立于具体的实现技术,可以应用于固定网络、移动网络以及下一代网络的业务提供;独立于具体的实现语言,可以用C、C++、Java等各种语言实现;定义了完善的认证和授权机制,以支持对第3方应用的支持。 Parlay/OSA API位于由网络运营商管理的Parlay网关和由业务提供商管理的应用服务器之间。 Parlay网关对应用服务器屏蔽了下层网络的技术实现细节,使得应用服务器可以使用统一的方式对网络能力进行访问。 Parlay/OSA API包括两类接口:业务接口和框架接口。 业务接口提供应用访问网络能力和信息的接口,框架接口提供业务接口安全、管理所必需的支持能力。 业务接口保证用户能够接入传统网络,如呼叫控制、呼叫管理、发送消息、用户交互等;框架接口提供的功能有:业务登记、业务预订、业务发现、认证、授权和综合管理。 JAIN API和Parlay/OSA API设计思想相近,功能上具有互补性。 它采用专一的Java语言实现,并且定义了比较完备的访问各种网络的网络协议API。 目前Parlay/JAIN联合工作组正在进行两者的融合工作。 在具体点就是你编程的时候用到的类~!官方提供的类,接口等等 还有一种是 api文档, 那是帮助文件
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。