小编Ósc*_*pez的帖子

迭代字符串中所有字符的最快方法

在Java中,迭代字符串中所有字符的最快方法是什么,这:

String str = "a really, really long string";
for (int i = 0, n = str.length(); i < n; i++) {
    char c = str.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)

或这个:

char[] chars = str.toCharArray();
for (int i = 0, n = chars.length; i < n; i++) {
    char c = chars[i];
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果重复调用的成本是什么,我想知道的是charAt长迭代期间方法最终是要么不是比执行一个调用的成本小于或大于toCharArray开头,然后直接在迭代期间访问阵列.

如果有人能够为不同的字符串长度提供强大的基准测试,考虑到JIT预热时间,JVM启动时间等等,而不仅仅是两次调用之间的差异,那就太棒了System.currentTimeMillis().

java string iteration performance char

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

从Java中获取HashMap的密钥

我有一个Java中的Hashmap,如下所示:

private Map<String, Integer> team1 = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)

然后我这样填写:

team1.put("United", 5);
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得钥匙?像:team1.getKey()回归"联合国".

java java-6 data-structures

152
推荐指数
5
解决办法
54万
查看次数

在Python中生成随机文件名的最佳方法

在Python中,生成一些随机文本以预先添加到我保存到服务器的文件(名称)的最佳方法是什么,只是为了确保它不会覆盖.谢谢!

python random hash

87
推荐指数
7
解决办法
7万
查看次数

java编译的类包含美元符号

我一直在使用Eclipse作为我的开发IDE.我还用它将我的应用程序导出到.jar文件中.当我在.jar文件中查看我的类时,我的一些类包含该类的名称,一个美元符号,然后是一个数字.例:

  • 查找$ 1.class
  • 查找$ 2.class
  • 查找$ 3.class
  • Find.class

我注意到它在更大的课程上做到这一点.这是因为这些类变得如此之大,它会将它编译成多个类吗?我用Google搜索并查看了多个论坛,并搜索了Java文档,但没有发现任何与之相关的内容.有人能解释一下吗

java compilation class

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

使用Python 3解码URL

有没有办法在Python 3中对字符串进行URL解码

采取这样的事情

id%253D184ff84d27c3613d%26quality%3Dmedium
Run Code Online (Sandbox Code Playgroud)

并解码它两次得到

id=184ff84d27c3613d&quality=medium
Run Code Online (Sandbox Code Playgroud)

html python python-3.x

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

如何实现延续?

我正在使用C语言编写的Scheme解释器.目前它使用C运行时堆栈作为自己的堆栈,这实现了实现continuation的一个小问题.我目前的解决方案是手动将C堆栈复制到堆中,然后在需要时将其复制回来.除了不是标准C之外,这种解决方案并不理想.

在C中实现Scheme的延续的最简单方法是什么?

c lisp scheme continuations

53
推荐指数
9
解决办法
7586
查看次数

"if"语句是否被视为一种方法?

我的同行之间讨论了"if"语句是否被视为一种方法的有趣讨论?尽管"if"附加了单词statement,但它仍然表现得类似于简单的非返回值方法.

例如:

if(myValue) //myValue is the parameter passed in
{
    //Execute
}
Run Code Online (Sandbox Code Playgroud)

同样,方法可以执行相同的操作:

public void MyMethod(myValue)
{
    switch(myValue)
    {
        case true:
            //Logic
            break;
        case false:
            //Logic
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

在编程语言中调用(考虑)"if"语句是一种简单的预定义方法是否准确?

language-agnostic programming-languages if-statement conditional-statements

49
推荐指数
4
解决办法
4471
查看次数

为什么在Racket中以奇怪的方式定义foldl?

在Haskell中,与许多其他函数语言一样,函数foldl被定义为例如foldl (-) 0 [1,2,3,4] = -10.

这没关系,因为foldl (-) 0 [1, 2,3,4]根据定义,((((0 - 1) - 2) - 3) - 4).

但是,在Racket中,(foldl - 0 '(1 2 3 4))是2,因为Racket"智能地"计算如下:(4 - (3 - (2 - (1 - 0)))),确实是2.

当然,如果我们定义辅助功能翻转,像这样:

(define (flip bin-fn)
  (lambda (x y)
    (bin-fn y x)))
Run Code Online (Sandbox Code Playgroud)

然后我们可以在Racket中实现与Haskell相同的行为:而不是(foldl - 0 '(1 2 3 4))我们可以写:(foldl (flip -) 0 '(1 2 3 4))

问题是:为什么foldl球拍以这种奇怪的(非标准的,非直观的)方式定义,与其他语言不同?

recursion scheme functional-programming fold racket

44
推荐指数
4
解决办法
8345
查看次数

如何使用Python逻辑检查回文

我正在尝试使用Python检查回文.我的代码非常for密集.

在我看来,从C到Python的最大错误是尝试使用Python实现C逻辑,这使得事情运行缓慢,并且它只是没有充分利用语言.

我在这个网站上看到了.搜索"C-style for",Python没有C风格的循环.可能会过时,但我将其解释为Python有自己的方法.

我试过四处寻找,我找不到最新的(Python 3)建议.如何在不使用for循环的情况下解决Python中的回文挑战?

我在课堂上用C语言完成了这个,但是我想在Python中以个人为基础.问题来自欧拉项目,顺便说一下,伟大的网站.

def isPalindrome(n):
    lst = [int(n) for n in str(n)]
    l=len(lst)
    if l==0 || l==1:
        return True
    elif len(lst)%2==0:
        for k in range (l)
        #####
    else:
        while (k<=((l-1)/2)):
            if (list[]):
                #####   

for i in range (999, 100, -1):
    for j in range (999,100, -1):
        if isPalindrome(i*j):
            print(i*j)
            break
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了很多代码.五个哈希只是我自己的提醒.

具体问题:

  1. 在C中,我会创建一个for循环,将索引0与索引max进行比较,然后使用max-1索引0 + 1,直到某事为止.如何在Python中做到最好?

  2. 我的for循环(在范围(999,100,-1)中,这是用Python做错的方法吗?

  3. 有没有人对我的职位有任何好的建议,好的网站或资源?我不是程序员,我不想成为一名程序员,我只想学习足够的东西,这样当我写完学士学位论文(电子工程)时,我不必同时学习适用的编程语言在项目中取得好成绩."如何从基本的C转到Python的伟大应用",那种事情.

  4. 任何特定的代码都可以很好地解决这个问题,我需要学习好的算法.我正在设想3种情况.如果值为零或单个数字,如果它是奇数长度,如果它是偶数长度.我打算为循环写...

PS:问题是:找到两个3位整数的最高值乘积,它也是一个回文.

python string palindrome

43
推荐指数
5
解决办法
16万
查看次数

Clojure序列的长度

我本来可以发誓我曾经alength工作过,但我现在还不太清楚我做错了什么:

user=> (alength '(1 2 3))
IllegalArgumentException No matching method found: alength  clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:79)
user=> (alength [1 2 3])
IllegalArgumentException No matching method found: alength  clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:79)
user=> (doc alength)
-------------------------
clojure.core/alength
([array])
  Returns the length of the Java array. Works on arrays of all
  types.
nil
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能在Clojure中获取列表/数组的长度?

functional-programming clojure

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