Java与Scala创建List与Map的实现方式

目录

  • Java与Scala创建List与Map
  • Java自定义map与scala map对比
    • 1. 背景
    • 2. java代码
【Java与Scala创建List与Map的实现方式】
Java与Scala创建List与Map
//JavaList languages = new ArrayList<>(); Map mapFields = new HashMap(); //Scala val languages = new util.ArrayList[String]val mapFields=new util.HashMap[String, Class]


Java自定义map与scala map对比
1. 背景
  • 在学习scala过程中,不可避免需要将java与scala对比,本文就是基于scala的map,使用java进行实现
  • jdk1.8中,引入了Stream、lambda表达式,这让java也可以支持函数式编程。

2. java代码
2.1 自定义实现的map
package com.doit.udf; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author hulc * @slogan: just do it * @date 2020/9/13 21:16 */public class UserDefineFunc {public static void main(String[] args) {test1(); }private static void test1() {// 使用java来实现scala中针对集合的map、reduce、filter函数的效果List list = new ArrayList<>(); list.addAll(Arrays.asList(1,2,3,4,5,6,7,8,9)); MyList integers = new MyList(list); // 使用匿名内部类方式进行自定义map方法调用List list1 = integers.map(new MyMapFunction() {@OverridepublicString map(K k) {if (k instanceof Integer) {Integer i = (Integer) k; i += 10; return (String) ("" + i); }return null; }}); for (Object o : list1) {System.out.println(o.toString()); }}}class MyList extends ArrayList {private List words; public MyList(List words) {this.words = words; }public List map(MyMapFunction function) {List ts = new ArrayList<>(); for (T t : words) {Object map = function.map(t); ts.add(map); }return ts; }}interface MyMapFunction {// map就是一个转换函数,输入一个K,转换为一个T T map(K k); }
2.2 使用jdk的Sream进行函数式处理
private static void test2() {List list = new ArrayList<>(); list.addAll(Arrays.asList(1,2,3,4,5,6,7,8,9)); // 将list转换为Stream,再进行处理,这时候就可以使用函数式进行处理Stream integerStream = list.stream(); Stream stringStream = integerStream.map(w -> {w += 10; return "" + w; }); // 遍历打印Object[] toArray = stringStream.toArray(); for (Object o : toArray) {System.out.println(o.toString()); }}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读