我试图从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的.
另一个问题的答案中没有涉及这方面.
Chrome的转换这样的:aöüß到%C3%A4%C3%B6%C3%BC%C3%9F
但Firefox将其转换为这里这个奇怪的事情:a%F6%FC%DF
我似乎无法找到一种方法,Firefox的东西转换回原来的PHP.遗憾的是,Urldecode和rawurldecode不起作用.有谁知道如何处理?谢谢.
请考虑以下简化示例:
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()时被调用一次.因此,全局变量的变化无效.有没有办法绕过这种行为?
我正在尝试使用Crockford Base32算法对字符串进行编码.
不幸的是,我当前的代码只接受数值作为输入.我想过将ASCII字符转换为十进制或八进制,但是然后串联010和100结果10100使得无法对此进行解码.有没有办法做到这一点,我不知道?
请考虑以下代码:
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实现正确的行为?
在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而我希望foo和3.
作为API请求的结果,将标准日期(年,月,日)和时间(小时分钟和秒)一起显示的标准(或某种等同物)格式是什么?或者在这种情况下是否应该返回时间戳?
考虑以下代码:
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)
是否有某种方法可以使该原理起作用,所以可以将对象引用“测试”从类/对象本身更改为?
我正在寻找相当于这个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运算符,在这种情况下没有多大用处,因为我不想检索范围内某个字段的文档,但文档中的范围很大如果文档本身符合搜索中给定的数字.
由于数据库的庞大规模,浏览所有记录并在脚本中评估结果不是一种选择.
我是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 ×4
php ×3
oop ×2
python-3.x ×2
api ×1
arraylist ×1
base32 ×1
between ×1
class ×1
csv ×1
date ×1
decorator ×1
diacritics ×1
dictionary ×1
encoding ×1
filepath ×1
firefox ×1
format ×1
go ×1
inheritance ×1
ip ×1
iso ×1
java ×1
mongodb ×1
path ×1
pymongo ×1
reference ×1
slice ×1
split ×1
sql ×1
urldecode ×1