月份:2017年1月

Java 取得使用者输入 java.util.Scanner用法

Scanner是新增的一个简易文本扫描器,在 JDK 5.0之前,是没有的。查看最新在线文档: public final class Scanner extends Object implements Iterator<String>, Closeable 可见,Scanner是没有子类的。 在JDK API关于Scanner提供了比较多的构造方法与方法。那么现在列出一些在平时工作中比较常用的方法,仅供大家参考: 构造方法: public Scanner(File source) throws… Read More

深入分析Java中的length和length()

在开始正文之前,请你快速回答如下问题: 在不使用任何带有自动补全功能IDE的情况下,如何获取一个数组的长度?以及,如何获取一个字符串的长度? 这个问题我问过不同水平的程序员,包括初级和中级水平的。他们都不能准确而自信地回答这个问题(如果你能很准确很自信的回答这个问题,那么证明针对这一知识点你比大多数中级程序员掌握的好)。由于现在很多IDE都有代码补全功能,这使得开发人员在很多问题上都理解的很肤浅。本文将介绍几个关于Java数组的关键概念。 上面问题的正确回答姿势应该是这样的: int arr = new int[3]; System.out.println(arr.length);//使用length获取数组的程度 String str = "abc"; System.out.println(str.length());//使用length()获取字符串的长度 那么问题来了,为什么数组有length属性,而字符串没有?或者,为什么字符串有length()方法,而数组没有? 为什么数组有length属性? 首先,数组是一个容器对象(Java中的数组是对象吗?),其中包含固定数量的同一类型的值。一旦数组被创建,他的长度就是固定的了。数组的长度可以作为final实例变量的长度。因此,长度可以被视为一个数组的属性。 有两种创建数组的方法:1、通过数组表达式创建数组。2、通过初始化值创建数组。无论使用哪种方式,一旦数组被创建,其大小就固定了。 使用表达式创建数组方式如下,该方式指明了元素类型、数组的维度、以及至少一个维度的数组的长度。… Read More

在Java中如何高效的判断数组中是否包含某个元素(in_array)

如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作。同时,这个问题在Stack Overflow中也是一个非常热门的问题。在投票比较高的几个答案中给出了几种不同的方法,但是他们的时间复杂度也是各不相同的。本文将分析几种常见用法及其时间成本。 检查数组是否包含某个值的方法 使用List public static boolean useList(String arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); } 使用Set public static boolean useSet(String… Read More