Stack Overflow是一个庞大的编程知识仓库,在Stack Overflow 上,数百万的提问被回答,并且这些回答都是高质量的。这就是为什么在Google搜索结果的排行榜上,Stack Overflow 总是位居首位。

虽然Stack Overflow上有非常多的提问,但是仍然每天都有大量的问题被提出,其中的很多都等待解答或者没有得到好的解答。因此,问题是如何找到答案的,通过Stack Overflow是不够的。

随着成千上万的开发者使用Java的API并且在Github上分享他们的项目,这些项目可以提供很多很好的例子来展示如何使用Java的API。Java API Example是一个提供常用Java API代码示例搜索的入口

在这篇文章中,我将会探索只通过开源的代码(jExample)能否解决投票前几名的API相关问题。“API相关的问题”指的是如何通过一些API来解决一个任务的问题。Stack Overflow上投票靠前的问题在http://stackoverflow.com/questions/tagged/java可以找到

对于每一个问题,最好的回答首先会被展示,随后通过Java API examples(jExample)的解决方案也会图文并茂的展示。

遍历一个HashMap

被接受的回答:

    Map<String, Object> map = ...;
for (String key : map.keySet()) {
// ...
}

  

如果我们在jExample搜索“HashMap”,前往java.util.HashMap示例页面。然后点击其中一个最常用的方法-entrySet(),我们就能快速的如下的示例:

	HashMap<BigInteger,R> subMap = rowie.getValue();
for( Entry<BigInteger, R> colie : subMap.entrySet() )
{
BigInteger col = colie.getKey();
R vali = colie.getValue();
ret.setVal(row, col, mutr.mutate( vali ) );
}

  

这个例子展示了如何通过使用HashMap.entrySet(),Entry.getKey()Entry.getValue()去迭代循环去遍历一个HashMap

Links: HashMap.entrySet()

通过一个数组创建一个ArrayList

对于这个问题,有多个回答提供了很多方式。这里是一些排名前三的方法:

    // Method 1
new ArrayList<Element>(Arrays.asList(array))
// Method 2
ImmutableList.of("string", "elements");
// Method 3
List<String> l1 = Lists.newArrayList(anotherListOrCollection);

  

以上的三个方法可以通过`jExample1找到

Method 1:

    List<String> updatedLikedAddresses = new ArrayList<>(Arrays.asLi(likedAddresses));

  

Method 2:

    List<String> portions = ImmutableList.of(serviceName,version,callStyle.name())

  

Method 3:

    List<String> portions = ImmutableList.of(serviceName,version,callStyle.name())

  

如何在一个范围内生成碎随机数?

被接受的来自回答的解决方法:

    int randomNum = rand.nextInt((max - min) + 1) + min;

  

如何将一个字符串转换成整型

最好的答案

    int foo = Integer.parseInt("1234");

  

如何将字节流转换成字节数组

被采纳的回答

    InputStream is;
byte[] bytes = IOUtils.toByteArray(is);

  

如何生成一个MD5散列

可以使用MessageDigest

public static String getMD5Digest(String str) {
try {
byte[] buffer = str.getBytes();
byte[] result = null;
StringBuffer buf = null;
MessageDigest md5 = MessageDigest.getInstance("MD5");
// allocate room for the hash
result = new byte[md5.getDigestLength()];
// calculate hash
md5.reset();
md5.update(buffer);
result = md5.digest();
// System.out.println(result);
// create hex string from the 16-byte hash
buf = new StringBuffer(result.length * 2);
for (int i = 0; i < result.length; i++) {
int intVal = result[i] & 0xff;
if (intVal < 0x10) {
buf.append("0");
}
buf.append(Integer.toHexString(intVal).toUpperCase());
}
return buf.toString();
} catch (NoSuchAlgorithmException e) {
System.err.println("Exception caught: " + e);
e.printStackTrace();
}
return null;
}

  

在java中如何创建一个文件并向文件中写入内容

方法一

    PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();

  

方法 2

    List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, Charset.forName("UTF-8"));

  

在java中从文本文件读取内容的最好方法

    BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
} finally {
br.close();
}

  

如何将java.util.Date转换成XMLGregorianCalendar

被接受的回答:

    GregorianCalendar c = new GregorianCalendar();
c.setTime(yourDate);
XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);

  

如何检查一个字符串是否为数值型的字符串

被接受的回答是使用Apache Commons Lang包中的 StringUtils.isNumeric

    StringUtils.isNumeric("23432")

  

Stack Overflow 上排名前十的与API相关的问题的更多相关文章

  1. Vue(二十七)当前GitHub上排名前十的热门Vue项目(转载)

    原文地址:https://my.oschina.net/liuyuantao/blog/1510726 1. ElemeFE/element tag:vue javascript components ...

  2. GitHub上排名前100的Android开源库介绍(来自github)

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...

  3. 为什么开发者热衷在Stack Overflow上查阅API文档?

    摘要:一项新研究跟踪了Android开发者的访问历史,发现开发者多达二分之一的文档是从Stack Overflow上获取到的,而Stack Overflow上的示例也多于官方指南,开发者通过搜索更多时 ...

  4. Stack Overflow上关于Java Collections的几个常见问题

    下面列出Stack Overflow上最常见的几个关于Java Collections的问题并给出答案. 1. 什么时候用LinkedList,什么时候用ArrayList? ArrayList是使用 ...

  5. 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍

    GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...

  6. GitHub上排名前100的Android开源库介绍

    GitHub上排名前100的Android开源库介绍 文章来源: http://www.open-open.com/news/view/1587067#6734290-qzone-1-31660-bf ...

  7. Appstore排名前十的程序员应用软件

    程序员又名程序猿,苦逼劳累的代名词,曾经一个朋友这么开玩笑说,如果你是富二代,你当程序员就是脑残,如果你是穷二代,当程序员的话,死的时候一定是趴键盘. 程序员 哦,可怜的程序员.在那山的这边海的那边有 ...

  8. Stack Overflow 上 370万浏览量的一个问题:如何比较 Java 的字符串?

    在逛 Stack Overflow 的时候,发现了一些访问量像喜马拉雅山一样高的问题,比如说这个:如何比较 Java 的字符串?访问量足足有 370万+,这不得了啊!说明有很多很多的程序员被这个问题困 ...

  9. [转帖]Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?

    Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递? http://www.itpub.net/2019/12/03/4567/   在逛 Stack Overfl ...

随机推荐

  1. 《Spring敲门砖之基础教程第一季》 第一章 概要介绍

    百度百科say: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/EEful ...

  2. EasyUi DataGrid中数据编辑方式及编辑后数据获取,校验处理

    EasyUi中的DataGrid提供前台编辑的相关函数. 实现客户选中DataGrid中一列后,对选中列中的一个字段进行编辑,并对数据进行实时校验后,传递至后台保存的需求, 主要涉及到DataGrid ...

  3. 创建DataTable并把列默认值

    DataTable dt=new DataTable(); dt.Columns.Add("id"); dt.Columns["id"].DefaultValu ...

  4. Ubuntu与Ubuntu系统之间的mount挂载

    1.被挂载机 1>安装Ubuntu nfs apt-get install nfs-kernel-server 2>配置/etc/exports Ubuntu nfs允许挂载的目录及权限在 ...

  5. python学习第八天 -- 迭代

    什么是迭代? 在python语言中,迭代的意思就是通过for循环遍历一个有序/无序的集合. 迭代是通过 for x in 集合 来完成的. 前面有提到python中有哪些集合,现在我们来梳理一下: ( ...

  6. /sbin/ifup: configuration for eth0 not found解决

    /sbin/ifup: configuration for eth0 not found. Usage: ifup <device name> 那么应该是在/etc/sysconfig/n ...

  7. HDU4453--Looploop (Splay伸展树)

    Looploop XXX gets a new toy named Looploop. The toy has N elements arranged in a loop, an arrow poin ...

  8. Raid1源代码分析--初始化流程

    初始化流程代码量比较少,也比较简单.主要是run函数.(我阅读的代码的linux内核版本是2.6.32.61) 四.初始化流程分析 run函数顾名思义,很简单这就是在RAID1开始运行时调用,进行一些 ...

  9. H5页面音频自动播放问题

        最近有这么一个需求,需要在手机加载一个页面的时候,自动播放音乐资源.一般情况下,这个问题也就解决了,但是要保证各种手机上表现一致,那就相当困难了,至少要费点儿周折.       下面有三种常规 ...

  10. 第28讲 UI组件之 ListView和ArrayAdapter

    第28讲 UI组件之 ListView和ArrayAdapter 1. Adapter 适配器 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的 ...