小编Ste*_*fan的帖子

Java ArrayList删除对象 - IndexOutOfBoundsException

我试图从ArrayList中删除一个对象,但我不断收到IndexOutOfBounds错误.现在有很多信息可用,为什么在删除迭代 ArrayList 会发生这种情况,但是我没有这样做.例:

 ArrayList<Character> a = new ArrayList<Character>();
 a.add('A');
 a.add('B');
 a.add('C');
 System.out.println(a);
 a.remove('A');
 System.out.println(a);
Run Code Online (Sandbox Code Playgroud)

打印[A, B, C]然后失败:

java.lang.IndexOutOfBoundsException: Index: 65, Size: 3
    at java.util.ArrayList.rangeCheck(ArrayList.java:635)
    at java.util.ArrayList.remove(ArrayList.java:474)
    at b.<init>(b.java:23)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at bluej.runtime.ExecServer$3.run(ExecServer.java:746)
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

编辑澄清这个问题不是一个重复这个问题:

这里发生的具体问题与迭代时删除元素时的常见问题无关.它更多是由重载的ArrayList remove方法和java 的自动类型转换char引起int的.

另一个问题的答案中没有涉及这方面.

java arraylist

8
推荐指数
1
解决办法
5031
查看次数

差异Firefox - Chrome编码变音符号时

Chrome的转换这样的:aöüß%C3%A4%C3%B6%C3%BC%C3%9F 但Firefox将其转换为这里这个奇怪的事情:a%F6%FC%DF 我似乎无法找到一种方法,Firefox的东西转换回原来的PHP.遗憾的是,Urldecode和rawurldecode不起作用.有谁知道如何处理?谢谢.

php firefox google-chrome diacritics urldecode

6
推荐指数
1
解决办法
2028
查看次数

带有参数的Python Decorator只调用一次

请考虑以下简化示例:

permitted = True
class is_allowed(object):
    def __init__(self, some_arg):
        # this is actually needed in the complete code
        self.some_arg = some_arg

    def __call__(self, f):
        if permitted == False:
            raise Exception("not authenticated to do that")
        def wrapped_f(*args, **kwargs):
            f(*args, **kwargs)
        return wrapped_f

@is_allowed("blah")
def print_hi():
    print("hi")

print_hi()
permitted = False
print_hi()
Run Code Online (Sandbox Code Playgroud)

我想问题是装饰器只在定义函数print_hi()时被调用一次.因此,全局变量的变化无效.有没有办法绕过这种行为?

python decorator python-3.x python-decorators

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

在PHP中实现Crockford Base32编码

我正在尝试使用Crockford Base32算法对字符串进行编码.

不幸的是,我当前的代码只接受数值作为输入.我想过将ASCII字符转换为十进制或八进制,但是然后串联010100结果10100使得无法对此进行解码.有没有办法做到这一点,我不知道?

php encoding base32

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

使用super()时未调用Python多重继承构造函数

请考虑以下代码:

class A(object):
    def __init__(self):
        pass
class B(object):
    def __init__(self):
        self.something = 'blue'
    def get_something(self):
        return self.something
class C(A,B):
    def __init__(self):
        super().__init__()
        print(self.get_something())
Run Code Online (Sandbox Code Playgroud)

然后做:

c = C()
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

AttributeError: 'C' object has no attribute 'something'
Run Code Online (Sandbox Code Playgroud)

我想这是因为在使用super()时没有调用B的构造函数.有没有办法用Python 3实现正确的行为?

python oop inheritance multiple-inheritance python-3.x

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

获取GO中路径的第一个目录

在Go中,是否可以获取路径的根目录

foo/bar/file.txt

回来了foo?我知道路径/文件路径,但是

package main

import (
        "fmt"
        "path/filepath"
)

func main() {
        parts := filepath.SplitList("foo/bar/file.txt")
        fmt.Println(parts[0])
        fmt.Println(len(parts))
}
Run Code Online (Sandbox Code Playgroud)

打印foo/bar/file.txt,1而我希望foo3.

split path go filepath slice

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

日期+时间的API响应格式(iso thing?)

作为API请求的结果,将标准日期(年,月,日)和时间(小时分钟和秒)一起显示的标准(或某种等同物)格式是什么?或者在这种情况下是否应该返回时间戳?

php api format iso date

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

Python从对象本身更改对象引用

考虑以下代码:

class A:
    def hi(self):
        print 'A'
    def change(self):
        self = B()
class B(A):
    def hi(self):
        print 'B'
Run Code Online (Sandbox Code Playgroud)

test = A()
test.hi() -> prints A
test.change()
test.hi() -> prints A, should print B
Run Code Online (Sandbox Code Playgroud)

是否有某种方法可以使该原理起作用,所以可以将对象引用“测试”从类/对象本身更改为?

python oop reference class

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

MongoDB IP地址BETWEEN查询

我正在寻找相当于这个SQL查询的mongo:

SELECT country
FROM geoip
WHERE
2921648058 BETWEEN start AND end
Run Code Online (Sandbox Code Playgroud)

我的MongoDB文档如下所示:

{
        "_id" : ObjectId("52daefed0c78fc8c9085498d"),
        "country" : "DE",
        "end" : "16777471",
        "start" : "16777216"
}
Run Code Online (Sandbox Code Playgroud)

这些数字是转换为int格式的IP地址.不幸的是,关于这一点的所有搜索只出现了$ gt和$ lt运算符,在这种情况下没有多大用处,因为我不想检索范围内某个字段的文档,但文档中的范围很大如果文档本身符合搜索中给定的数字.
由于数据库的庞大规模,浏览所有记录并在脚本中评估结果不是一种选择.

sql ip between mongodb pymongo

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

将词典添加到列表python中

我是python的新手,我正在尝试创建一个csv解析脚本.我将行从csv传递到列表,但目前我遇到的麻烦是我需要在每个项目中添加第一个标题行作为字典.

def parse_csv(datafile):     
    data = []
    with open(datafile, "r") as f: 
        next(f) #skip headerline
        for line in f:
            splitLine = line.strip(',') 
            rowL = splitLine.rstrip('\n') #remove the newline char
            data.append(rowL)
        pprint(data)

    return data
Run Code Online (Sandbox Code Playgroud)

如果第一个标题行有字典(例如标题,名称等),我将如何传递给每个被剥离的元素?

例如{'Dict1':'data1','Dict2':'data2'}

这可能被视为重复,但从类似的帖子尝试了各种方式,但没有在我的情况下正常工作.

python csv dictionary

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