小编Emi*_*mil的帖子

Python,Java和C中的嵌套循环比较

python中的以下代码需要很长时间才能运行.(我不能等到节目结束,虽然我的朋友告诉我他花了20分钟.)

但Java中的等效代码大约在8秒内运行,在C中则需要45秒.

我预计Python会很慢但不是很多,而在C的情况下,我希望比Java更快,实际上速度更慢.JVM是否使用一些循环展开技术来实现这种速度?Python有这么慢的原因吗?

import time
st=time.time()
for i in xrange(0,100000):
    for j in xrange(0,100000):
        continue;
print "Time taken : ",time.time()-st
Run Code Online (Sandbox Code Playgroud)

c python java performance

4
推荐指数
3
解决办法
2257
查看次数

协议缓冲区比序列化更好吗?

我有一个大型数据结构,我正在序列化.在某些时候我需要编辑数据结构中的值.但是只是为了更改一个小值我将不得不再次重新序列化它而不是更新更改文件中的值.我听说过谷歌协议缓冲区.用它会解决我重写文件的问题吗?对我来说,使用协议缓冲区而不是Java序列化是一个更好的选择吗?

java serialization protocol-buffers

4
推荐指数
1
解决办法
1514
查看次数

Eclipse自动todo任务添加

在eclipse中是否有办法自动添加TODO任务,例如: - //TODO: TO BE TESTED在函数或类的顶部,以便我可以轻松跟踪尚待测试的更改?

eclipse todo

4
推荐指数
1
解决办法
1万
查看次数

java中的模糊逻辑

我得到了一个涉及模糊逻辑的新项目模块.它是使用模糊逻辑方法确定不同的Hydrometeors.我对模糊逻辑是什么一无所知.所以我想从已经使用Java中的模糊逻辑完成项目的人那里得到一些建议(比如我可以采用的基本编程策略).

我遇到过模糊的logc API.使用它的人请评论它的用途.

java fuzzy-logic

3
推荐指数
1
解决办法
1万
查看次数

使用正则表达式拆分不同长度的字符串

我不知道这是否可以使用正则表达式.我只是想问一下有人知道答案.

我有一个string ="hellohowareyou??".我需要像这样拆分它

[h, el, loh, owar, eyou?, ?].

完成分割使得第一串具有长度1,第二长度2等等.最后一个字符串将包含剩余的字符.我可以使用像这样的函数在没有正则表达式的情况下轻松完成.

public ArrayList<String> splitString(String s)
    {
        int cnt=0,i;
        ArrayList<String> sList=new ArrayList<String>();
        for(i=0;i+cnt<s.length();i=i+cnt)
        {
         cnt++;
         sList.add(s.substring(i,i+cnt));    
        }
        sList.add(s.substring(i,s.length()));
        return sList;
    }
Run Code Online (Sandbox Code Playgroud)

我只是好奇是否可以使用正则表达式完成这样的事情.

java regex string

3
推荐指数
2
解决办法
2312
查看次数

为什么Arrays.toString(values).trim()会生成[括号内的文本]?

Map<String, String[]> map = request.getParameterMap();
for (Entry<String, String[]> entry : map.entrySet())
{
    String name = entry.getKey();
    String[] values = entry.getValue();
    String valuesStr = Arrays.toString(values).trim();
    LOGGER.warn(valuesStr);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用上面的代码查看请求参数值.

为什么Arrays.toString(values).trim();括号参数值所以它看起来像这样:

[Georgio]
Run Code Online (Sandbox Code Playgroud)

在没有括号的情况下获取字符串的最佳方法是什么?

如果我这样做:

String valuesStr = values[0].trim();
Run Code Online (Sandbox Code Playgroud)

似乎存在丢失数组中后续值的风险.

java arrays tostring

3
推荐指数
2
解决办法
3489
查看次数

使用保留包名访问包 - 私有变量

我正在研究源代码,java.util.HashMap我想看看hashcode函数在Entrys 的内部数组(这是一个软件包私有变量)中分配密钥的效果如何.所以我java.util在我的项目中创建了一个名为查看天气I 的软件包可以欺骗编译器认为它是相同的包.令人惊讶的是它工作,我写了以下代码:

package java.util;

public class HashMapExt<K, V> extends HashMap<K, V> implements Map<K, V> {

    public static void main(String[] args) {
        HashMapExt<Integer, String> mp = new HashMapExt<Integer, String>();
        mp.put(1, "Hello");
        mp.put(2, "Map");
        mp.put(3, "Extention");
        mp.printData();
    }

    void printData() {

        System.out.println(Arrays.toString(table));
    }
}
Run Code Online (Sandbox Code Playgroud)

它成功编译但在运行时它给出了一个例外:

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.util
    at java.lang.ClassLoader.preDefineClass(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

java access-modifiers

3
推荐指数
1
解决办法
1034
查看次数

解决方案只能递归的问题示例

可能重复:
每次递归都可以转换为迭代吗?

是否存在必须使用递归的问题,并且无法迭代地执行此操作?例如,删除子文件夹中的文件.

public static boolean deleteFile(String sFilePath)
{
  File oFile = new File(sFilePath);
  if(oFile.isDirectory())
  {
    File[] aFiles = oFile.listFiles();
    for(File oFileCur: aFiles)
    {
       deleteFile(oFileCur.getAbsolutePath());
    }
  }
  return oFile.delete();
}
Run Code Online (Sandbox Code Playgroud)

我无法想到上面那个的迭代版本,因为我们必须事先知道实际存在多少级别的文件夹,如果我们引入一个新的子文件夹,我们将不得不更改代码.是否可以制作上述代码的迭代版本,以便将来不需要更改代码?

iteration algorithm recursion

2
推荐指数
1
解决办法
1513
查看次数

用Java绘制弧形

我需要在Java中用起始角度350和结束角度20绘制一个Pie Arc.我遵循的坐标系统如下: -

        |0  
        |
270-----------90 
        |
        |180
Run Code Online (Sandbox Code Playgroud)

这里的问题是起始角度大于结束角度.换句话说,我已设法画出弧线.任何帮助都会很棒.

java graphics coordinate-systems

1
推荐指数
1
解决办法
2万
查看次数

在这种情况下如何使用迭代器?

我必须以这种方式迭代一个arraylist.

ArrayList<Integer> li = new ArrayList<Integer>();
li.add(20);
li.add(30);
li.add(40);
li.add(50);
li.add(70);

for (int i = 0; i < li.size() - 1; i++)
    System.out.println(li.get(i) + " " + li.get(i + 1));
Run Code Online (Sandbox Code Playgroud)

输出:

20 30
30 40
40 50
50 70
Run Code Online (Sandbox Code Playgroud)

如何使用迭代器做同样的事情?

java iterator arraylist

0
推荐指数
1
解决办法
2140
查看次数

Java变量初始化?

什么是这种类型的初始化知道:

long i=12l;        //using 'l' to denote long variable
double d=12.0d;    //using 'd' to denote double variable
Run Code Online (Sandbox Code Playgroud)

是否有区别:

long i=12l;
and    
long i=12L;
Run Code Online (Sandbox Code Playgroud)

java literals

0
推荐指数
1
解决办法
362
查看次数