我已阅读文档并查看了大量SO问题,仍然无法创建向量向量而不会遇到ArrayIndexOutofBounds异常。对于某些上下文,我正在创建一个矩阵,其中每个槽包含对边的引用,表示从源到目的地的航班。在one SO response之后,我按如下方式设置了矢量。
Iterator<Edge> iter = array.iterator();
private Vector<Vector<Edge>> matrix = new Vector<Vector<Edge>>(9);
for (int i=0;i<9;i++){
matrix.add(i,new Vector<Edge>(9));
}
while (iter.hasNext()) {
Edge e = iter.next();
int s = e.source; //row
int d = e.destination; //col
Vector<Edge> row = matrix.get(s);
int size = row.size();
row.add(d, e); // Array Out of Bounds Exception
}
我相信我已经初始化了我的内部和外部向量,并且不理解为什么向量的大小仍为零。在开始放置和获取元素之前,是否必须将所有元素初始化为null?我将衷心感谢您的帮助。
答案 0 :(得分:2)
new Vector<Edge>(9)
创建容量为9的空Vector
。因此,当add(d,e)
不为0时,为Vector
调用d
将会{{1} }}
要使用空值初始化每一行ArrayIndexOutOfBoundsException
,请使用:
Vector
答案 1 :(得分:0)
构造一个具有指定初始容量且容量增量等于零的空向量
的参数:强>
initialCapacity向量的初始容量
的抛出:强>
java.lang.IllegalArgumentException如果指定的初始容量为负
How to change default port 9042 in Cassandra ?
I resolved issue using below steps :
1. Stop cassandara services
sudo su -
systemctl stop datastax-agent
systemctl stop opscenterd
systemctl stop app-dse
2. Take backup and Change port from 9042 to 9035
cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
Vi /opt/dse/resources/cassandra/conf/cassandra.yaml
native_transport_port: 9035
3. Start Cassandra services
systemctl start datastax-agent
systemctl start opscenterd
systemctl start app-dse
4. create cqlshrc file.
vi /root/.cassandra/cqlshrc
[connection]
hostname = 198.168.1.100
port = 9035
Thanks,
Mahesh