Java8的新特性,二进制序列转十进制数字

package kata_007_二进制序列转十进制int;
/**
 * java8 Lambda表达式转换binary序列->十进制数
 */
import java.util.ArrayList;

public class ShortBinaryToDecimal {

    public static void main(String[] args) {

        ArrayList<Integer> binary = new ArrayList();
        binary.add(1);
        binary.add(0);
        binary.add(1);
        binary.add(0);
        int result = binaryToDecimal(binary);
        System.out.println(result);
    }

    public static int binaryToDecimal(ArrayList<Integer> binary) {
          return binary.stream().reduce((x, y) -> x * 2 + y).get();
    }

}

如果不用Lambda表达式,使用传统方式:

package kata_007_二进制序列转十进制int;

import java.awt.List;
import java.util.ArrayList;

public class TestBinaryToDecimal {

    public static void main(String[] args) {

        //test method
        ArrayList binary = new ArrayList();
        binary.add(1);
        binary.add(0);
        binary.add(0);
        binary.add(1);
        int result = binaryToDecimal(binary);
        System.out.println(result);
    }

    public static int binaryToDecimal(ArrayList<Integer> binary) {
        String binaryStr = "";
        for(int i=0;i<binary.size();i++) {
            binaryStr += binary.get(i);
        }
        //String binary -> String decimal
        String decimalStr = Integer.valueOf(binaryStr,2).toString();
        //String decimal -> int
        int decimalResult = Integer.parseInt(decimalStr);

        return decimalResult;
    }

}

原文地址:https://www.cnblogs.com/ukzq/p/9185370.html

时间: 2024-10-12 20:15:46

Java8的新特性,二进制序列转十进制数字的相关文章

java8的新特性以及用法简介

1. 介绍 2 接口的默认方法 2 lambda表达式 2.1 函数式接口 2.2 方法与构造函数引用 2.3 访问局部变量 2.4 访问对象字段与静态变量 3. 内建函数式接口 3.1 Predicate接口 3.2 Function 接口 3.3 Supplier 接口 3.4 Consumer 接口 3.5 Comparator 接口 3.6 Optional 接口 3.7 Stream 接口 3.7.1 Filter过滤 3.7.2 Sort 排序 3.7.3 Map 映射 3.7.4

简单了解JAVA8的新特性

JAVA8新特性会颠覆整个JAVA程序员的编程习惯 甚至如果您坚守JAVA7之前的编程习惯,今后你看比较年轻的程序员写的JAVA代码都会无法理解 所以为了保证不脱钩,我觉得有必要学习JAVA8的新特性,况且,这会极大得提高CPU效率和编码效率 我们来简单了解一下JAVA8的新特性 我觉得主要有两个比较重要的,一是Lambda表达式,二是集合类的stream操作 关于这两点,我写了几个小DEMO,附上注释,应该能够迅速掌握 如果大家好奇更多的JAVA8新特性,请自行阅读更加专业的知识,敏捷开发不求

C++11 新特性之 序列for循环

在C++中在C++中for循环可以使用类似java的简化的for循环,可以用于遍历数组,容器,string以及由begin和end函数定义的序列(即有Iterator) #include <iostream> #include <map> #include <string> using namespace std; int main() { map<string, int> ms; ms.insert(make_pair("a", 1))

java8的新特性1

1.lambda表达式 2.函数式接口 3.StreamAPI 4.方法的引用与构造器的引用 5.接口中的默认方法与静态方法 6.新时间日期API 7.其他新特性 简介 java8的新特性 1.速度更快(内存结构.垃圾回收.并行拓展) 2.代码更少(新增新的语法lambda表达式) 3.强大的streamApI 4.便于并行 5.最大化减少空指针异常,optional lambda表达式 首先:lambda表达式是一个匿名函数,我们可以把lambda表达式理解为一段可以传递的代码(将代码像数据一

java5、java6、java7、java8的新特性

Java5: 1.泛型 Generics:        引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处. Parameterized Type作为参数和返回值,Generic是vararg.annotation.enumeration.collection的基石. A.类型安全 抛弃List.Map,使用List<T>.Map<K,V>给它们添加元素或者使用Iterator<T>遍历时,编译期就可以给你检查出类型错误 B

Java8部分新特性的学习

Java8中的新特性 一.Lambda表达式 Lambda表达式可以理解为一种可传递的匿名函数:它没有名称,但又参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. 匿名:和匿名类类似的,它没有明确的名字 函数:Lambda函数不属于某个特定的类,但和方法一样都具有参数列表.函数主体.返回类型,还可以有抛出的异常列表 传递:Lambda表达式可以作为参数传递给方法或者存储在变量中. Lambda表达式的基本形式: (parameters)-> expression 或(paramete

Java8的新特性

Java 8主要新特性包括如下几点: 一.接口的默认方法和静态方法 Java 8版之前,接口只有抽象方法,而在Java 8,为接口新增了两种类型的方法. 第一种是默认方法:在Java 8中,可以通过使用default关键字来添加默认的方法实现. 接口的实现类可以直接使用这些默认的方法,同时还可以重写默认的方法,这不是强制性的重写. package demo.ch; public interface Java8InterfaceDemo { abstract void add(); default

java8 常用新特性

1.Lambda 表达式 (把代码当作参数) //定义了操作接口public interface GreetingService {void sayMessage(String message);}//声明接口的具体操作GreetingService greetService1 = message -> System.out.println("Hello " + message);//调用接口,使用功能greetService1.sayMessage("java&quo

Java8新特性小结-接口与Lambda表达式

Java8的新特性相对于前版本(Java7)来说,主要体现在两个方面: 1.   接口定义与使用 2.   Lambda表达式对匿名内部类的简化使用. Java8新特性的具体表现如下: 1.在接口中的体现 (1)在接口中可以定义实体方法,但除原先的抽象方法外只能定义两种方法: A.公共的静态方法 如: package com.jasberyon.java8.interfacer; public interface InterfaceA { public static void sayHi(){