C++向量,Java数组等效
C++ vector, java array equivalent?
在 c++ 中,我们可以有这样的向量:
vector < int > v[20];
我必须在 java 中创建等效的 c++ 程序。我可以声明
static ArrayList < ArrayList<Integer > > v;
但这并不完全是我想要的。我希望它更直观。我正在尝试找到一种轻松在结构中添加元素的方法。例如,如果我有一个图表,并且我正在读取从a到b的道路,则C++只需使用v[a].push_back(b)。
首先vector<int> v[20]
不是向量的向量。
其次,ArrayList相当于Java中的std::vectors
。
vector.push_back
的一般等价物可以是这样的,即使用通用列表:-
List<Integer> x = new ArrayList<Integer>();
x.add(1);
List<Integer>[] v = (List<Integer>[]) Array.newInstance(Integer.class, 20);
{
for (int i = 0; i < v.length; ++i) {
v[i] = new ArrayList<>();
}
}
可悲的是,Java在这里不是那么简洁或设计得很好。 Array.newInstance
适用于所有硬币:int[][][]
将是Array.newInstance(int.class, 10, 10, 10)
.因此,它返回一个 Object 作为最小分母,并且需要强制转换。
初始数组仅包含 null,需要初始化。
校正:
当然应该List.class
而不是Integer.class
.
import java.util.Vector;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Vector<Integer>[] anArray = (Vector<Integer>[]) new Vector[100];
for(int i = 0; i < anArray.length; i++)
anArray[i] = new Vector<Integer>();
anArray[2].add(2);//....
}
}
相关文章:
- 如何从保存在 Java 中C++的字节数组中读取数字?
- 如何将字符串数组返回到 java JNI
- 在C++中返回基元类型数组(Java比较)
- 如何在本机 c++ jni 中实现 java 类型数组
- JNI 如何将 Java 对象数组传递给相同对象类型的 C++ 数组
- 声明数组>> int arr[] 时出错;在C++(虽然在 Java 中有效)?
- 无法从JNI设置Java Int数组字段
- 如何将字符串数组从C++返回到Java(JNI)
- 我正在尝试修改一个字节数组并通过 JNI 将其从 c++ 发送到 java
- 如何修复将传输到 java 的 2d 数组代码使用 JNI
- JNI:将整数数组从Java传递到C
- JNI将字符串从Java传递到C ,然后将C 字符串传递给字符串数组
- 如何在 c++ 和 java 之间通过 udp 有效地发送数据数组
- 如何在Android中将数组从JNI返回到Java
- 使用SWIG Directors将数组从C 传递到Java
- 使用 JNI 从 Java 访问 C++ 对象数组
- 如何在 Java 中声明一个uint8_t数组
- SWIG - Java 代理类数组参数
- Java字节数组(长度值)转换为C 的长度
- 如何使用Swig将数组(java中的长数组)从Java传递到C++