Java的compare()和compareTo()方法有什么区别? 这些方法是否给出相同的答案?
什么是最优雅的方式来实现这个function: ArrayList generatePrimes(int n) 这个函数生成前n素数(编辑:其中n>1 ),所以generatePrimes(5)将返回一个ArrayList {2, 3, 5, 7, 11} ArrayList {2, 3, 5, 7, 11} 。 (我在C#中这样做,但我很满意Java的实现 – 或者其他类似的语言(所以不是Haskell))。 我知道如何写这个function,但是当我昨晚做了这个function的时候,并没有像我希望的那样好。 这是我想出来的: ArrayList generatePrimes(int toGenerate) { ArrayList primes = new ArrayList(); primes.Add(2); primes.Add(3); while (primes.Count < toGenerate) { int nextPrime = (int)(primes[primes.Count – 1]) + 2; while (true) { bool isPrime = true; foreach […]
这是一系列教育正则expression式文章的第二部分。 它展示了如何使用前瞻和嵌套的引用来匹配非规范的语言。 首先介绍嵌套引用: 这个正则expression式如何find三angular形数字? 其中一种典型的非正规语言是: L = { a n b n : n > 0 } 这是所有非空string的语言,由一些数字a组成,后面跟着相同数量的b 。 这种语言的string的例子是ab , aabb , aaabbb 。 这个语言可以通过抽象引理显示为不规则的。 它实际上是一个典型的上下文无关语言 ,可以由上下文无关文法 S → aSb | ab S → aSb | ab 。 尽pipe如此,现代的正则expression式实现清楚地认识到不仅仅是正规的语言。 也就是说,它们不是由forms语言理论定义的“规则”。 PCRE和Perl支持recursion正则expression式,.NET支持平衡组定义。 更less的“奇特”特征,例如反向引用匹配,意味着正则expression式不规则。 但是这个“基本”function有多强大呢? 我们可以用Java正则expression式来识别L吗? 我们是否可以将lookaround和嵌套的引用结合在一起,并且有一个与例如String.matches匹配的模式来匹配像ab , aabb , aaabbb等string? 参考 perlfaq6:我可以使用Perl正则expression式来匹配平衡文本吗? MSDN – 正则expression式语言元素 […]
我刚刚在我们的代码库中find了一个静态嵌套的接口。 class Foo { public static interface Bar { /* snip */ } /* snip */ } 我从来没有见过这个。 原来的开发人员遥不可及。 所以我不得不问: 什么是静态接口背后的语义? 如果我删除static会有什么变化? 为什么有人会这样做?
有没有一种方法可以使用Java SE API在Java中创build非常基本的HTTP服务器(仅支持GET / POST),而无需编写代码手动分析HTTP请求并手动格式化HTTP响应? Java SE API很好地将HttpURLConnection中的HTTP客户端function封装起来,但有没有HTTP服务器function的模拟? 为了清楚起见,我在网上看到很多ServerSocket例子的问题是,他们自己做请求parsing/响应格式化和error handling,这是单调乏味的,容易出错的,不太可能是全面的,我试图避免这些原因。 作为我试图避免的手动HTTP操作的一个例子: http://java.sun.com/developer/technicalArticles/Networking/Webserver/WebServercode.html
在Java中有什么内置的方法,允许我们将逗号分隔string转换为一些容器(例如数组,列表或vector)? 或者我需要为此编写自定义代码? String commaSeparated = "item1 , item2 , item3"; ArrayList<String> items = //method that converts above string into list??
使用Java 8和lambdaexpression式,可以很容易地将集合作为stream进行迭代,并且使用并行stream也很容易。 来自docs的两个例子,第二个使用parallelStream的例子: myShapesCollection.stream() .filter(e -> e.getColor() == Color.RED) .forEach(e -> System.out.println(e.getName())); myShapesCollection.parallelStream() // <– This one uses parallel .filter(e -> e.getColor() == Color.RED) .forEach(e -> System.out.println(e.getName())); 只要我不关心顺序,使用并行总是有益的。 人们可能会认为将更多内核的工作划分得更快。 还有其他的考虑吗? 什么时候应该使用并行stream,何时应该使用非并行stream? (这个问题被要求引发关于如何和何时使用并行stream的讨论,不是因为我认为总是使用它们是一个好主意。)
Java是我select的编程语言之一。 尽pipe将应用程序分发给最终用户,但我总是遇到这个问题。 给用户一个JAR并不总是如我所愿,并且使用Java WebStart要求我维护一个Web服务器。 什么是分发Java应用程序的最佳方式? 如果Java应用程序需要将伪像安装到用户的计算机上怎么办? 那里有没有好的Java安装/包装系统?
从Stack Exchange和其他地方所见过的所有东西,我已经正确设置了一切,以便在Android OS引导时启动IntentService。 不幸的是,它不是开机启动,我没有得到任何错误。 也许专家可以帮助… performance: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.phx.batterylogger" android:versionCode="1" android:versionName="1.0" android:installLocation="internalOnly"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.BATTERY_STATS" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <service android:name=".BatteryLogger"/> <receiver android:name=".StartupIntentReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application> </manifest> BroadcastReceiver启动: package com.phx.batterylogger; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class StartupIntentReceiver extends […]
如何在Android中使用定位工具获取移动设备的当前纬度和经度?