我正在努力学习ArrayList和向量。例如,如果我有private Vector cardsInMyHand;,我可以将它更改为ArrayList。如你所见不然我错了。
private Vector numbers;
.
.
.
Vector studentNumbers;
studentNumbers = new Vector();
public int getNumbers(Vector studentNumbers, int x)
{
if (x >= 0 && x < stud
为什么这不起作用
import java.util.ArrayList;
public class Vector
{
ArrayList<Long> vector;
public Vector(long ...vector)
{
for (long value : vector)
this.vector.add(new Long(value));
}
}
当我做一架像Vector a = new Vector(4,7,8);这样的新飞机时,它说
java.lang.NullPointerException
我
我想比较类Vector和类ArrayList中的add方法(针对1000个元素)。
为什么Vector中的add方法比ArrayList中的add方法快
下面是我用来测量的代码:
public static void main(String[] args) {
List v = new Vector();
List l = new ArrayList();
long startTime = System.nanoTime();
for (int i = 0; i < 1000; i++) {
v.add(i);
}
long
我对java的接口和抽象类有一些问题。我有接口
public interface IVector <T extends IVector>{
public IVector add(IVector vector);
public IVector sub(IVector vector);
public double dotProduct(IVector vector);
public IVector scalar(double scalar);
}
abstract class是这样的:
public abstract class Vector implemen
因此,假设我创建了一个Vector类,其中包含了x和y两个变量:
public class Vector {
private int x;
private int y;
public Vector(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return this.x;
}
public int getY(){
return this.y;
}
}
然后我画了一个向量的Array
因为我希望使用DefaultTableModel构建一个表,所以类的params是必需的Vector类型。所以我尝试改变这个方法,但是它不起作用。
ArrayList a = new ArrayList();
ArrayList b = new ArrayList();
Vector c = new Vector(a);
Vector d = new Vector(b);
DefaultTableModel tb = new DefaultTableModel(c,d)
结果:
java.lang.ClassCastException: java.util.ArrayList cannot
所以我得到了这个类:
package src;
import java.util.ArrayList;
import java.util.List;
import org.lwjgl.util.vector.Vector3f;
public class Model {
public List<Vector3f> Vertices = new ArrayList<Vector3f>();
public List<Vector3f> Normals = new ArrayList<Vector3f>();
public L
我们正在处理一个非常古老的java项目,大多数列表对象都被声明为Vector。声纳抱怨矢量的使用是同步的。
List vector = new Vector();
我们可以很容易地将声明更改为Arraylist,但我担心它可能会在代码库中的其他地方引起问题,出现同步,或者会出现特定的情况,期望Vector.net。
有人能告诉我,是否可以将Vector类型转换为ArrayList,或者将声明更改为ArrayList,并在代码的其他部分用作Vector?
注意:反射在框架中被大量使用,可以检索ArrayList对象,并可能再次将其转换为Vector。
我会尽量让这一切变得简单
在Java中,我将执行以下操作:
public class foo{
private final int x;
private final ArrayList<classname1> one;
private final ArrayList<classname2> two;
//constructor
public foo(int x){
this.x = x;
one = new ArrayList<>();
two = new Arr
我有一个JTable,我在三个不同的列中添加了三个JComboBoxes。现在,我想为我拥有的每一行设置所选的项。问题是,我需要每一行的ID才能做到这一点。因此,我尝试了不同的侦听器,最好的结果是使用一个FocusListener,但之后我总是必须先单击行,然后单击JComboBox,这是很辛苦的。下面是一个示例:
JTable table = new JTable();
Vector<ArrayList<Object>> data = new Vector<ArrayList<Object>>();
for (int i = 0
我得到了一个并发修改异常,问题是我正在迭代一个arraylist,绘制和更新arrayList中的sprites,同时在另一个java类中添加新的sprites。
public abstract class Scene
{
ArrayList<UIElement> uiElements = new ArrayList<>();
ArrayList<GameObject> sprites = new ArrayList<>();
public ArrayList<GameObject> getSprites()
我试图理解Vector类和ArrayList类在线程安全性方面的区别。向量应该是内部同步的。它是按每个元素同步,还是作为一个整体同步?(我可以想象这样的情况:多个线程可以同时访问向量,但多个线程不能同时访问相同的元素)。如果您查看下面的代码,就会发现getAo()不等同于getV(),因为据我所知,在方法签名中使用synchronized关键字时,会在包含的类对象(VectorVsArrayList的实例)上同步。然而,getAoSync()等同于getV()吗?我的意思是,只要对ao实例变量的所有访问都通过getter方法,它就会开始在同步方面表现得像Vector对象一样吗?
public
每个人都在说,一个人应该使用vector,因为它的性能(因为Vector在每个操作和东西之后都是同步的)。我写了一个简单的测试:
import java.util.ArrayList;
import java.util.Date;
import java.util.Vector;
public class ComparePerformance {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
我正在阅读以下文章:
文章说:
您知道,是Java历史早期存在的两个集合,它们从一开始就是为线程安全而设计的(如果您有机会查看它们的源代码,您将看到它们的方法都是同步的!)但是,在多线程程序中,它们很快就会暴露出糟糕的性能。正如您可能知道的,同步需要锁,这些锁总是需要时间来监视,这降低了性能。
--我也用卡里尔做了一个基准测试;请听我讲这个
还提供了一个示例代码:
public class CollectionsThreadSafeTest {
public void testVector() {
long startTime = System.curren
我正在开发一个泛型类,它必须在私有ArrayList中存储T类型值,并具有常用的get、set方法,但当我初始化ArrayList时,它的大小仍然为0!我显式地使用了带int参数的构造函数,但它只保留为0。下面是我的构造函数和get方法(该类被称为GenericVector<T> ):
public GenericVector(int n)
{
vector = new ArrayList<>(n);
}
public T get (int pos)
{
if (pos >= vector.size())
{
Syste
我正在尝试理解ArrayList和Vector的行为差异。以下代码片段是否以某种方式说明了同步方面的差异?ArrayList (f1)的输出是不可预测的,而向量(f2)的输出是可预测的。我认为幸运的是,f2具有可预测的输出,因为稍微修改f2以使线程休眠即使是ms (f3)也会导致空向量!这是什么原因造成的?
public class D implements Runnable {
ArrayList<Integer> al;
Vector<Integer> vl;
public D(ArrayList al_, Vector vl_) {
我做了一个简单的代码来获得跳跃球的位置,但是我肯定遗漏了一些东西,因为我知道:
下面是获取x和y位置的代码:
public Vector2f[] draw() {
float x = 0, y = height; // height - float value from class constructor;
ArrayList<Vector2f> graphic = new ArrayList<Vector2f>();
for(;;){
Vector2f a = new Vector2f(x, y);
graph
我正在开发一款安卓游戏,我刚刚注意到,由于onTouchEvent在UI线程上运行,而更新/渲染方法是从单独的线程运行的,所以它们都会更新包含实体的ArrayList。因此,如果它们碰巧同时修改列表,显然它们会发生冲突。
我读到Vector类的用法与ArrayList完全相同,唯一的区别是Vector是同步的,因此它们不会发生冲突。这是真的吗?如果是这样,它是否有任何性能问题或我应该关注的东西?我以前从未使用过Vector类。
编辑:我的实际意思是从
ArrayList<Obj> list = new ArrayList<Obj>();
至
Vector<Obj&
我有一个问题,我找不到任何解决办法。我正在使用c++ stl容器编写层次结构。我有模板类Collection,它是基类抽象类,列表类是从派生的,ArrayList类是从List派生的。
接口是:
template<typename T,template <typename...> class Container>
class collections
{
public:
virtual gtuiterator<T,Container> iterator()=0;//my own iterator class
virtual bool conta
我试图在3d边界内的3d空间中生成一个包含10万个随机点的列表,而不让任何一个点占据相同的位置。我实际上是在尝试创建一个非重复的Vector3生成器。有什么有效的方法可以做到这一点吗?此外,如果这些点不是均匀分布的,只要它们不占据相同的位置,实际上最好是聚集在这里的某个人。
为了澄清,我并不是想要产生300,000个独特的点数。而是100000个三维点。所以向量值(0,0,0)和(0,0,1)是可以接受的。但是(4,4,4)和(4,4,4)是不可接受的。
public class Vector3
{
public float x;
public float y;
pub
这是我在转换时遇到问题的代码行:
Vector3 n1 = m.normals.get((int) face.normal.X - 1);
我不确定这在c#中是什么意思,因为我尝试了相当多的东西。我认为这也可能是因为我的列表出现了问题:
class Model
{
public List<Vector3> vertices = new List<Vector3>();
public List<Vector3> normals = new List<Vector3>();
public List<Face> fa
我正在用Java开发一个应用程序,由于Vector已经过时,我需要将其更改为使用ArrayList。
这是需要更改为ArrayList的相关代码
这就是“房子”课。
public Vector<Vector> getItems() {
Vector<Vector> data = new Vector<Vector>();
for (int i = 0; i < _itemList.size(); i++) {
Vector<String> row = new Vector<String>();