相关疑难解决方法(0)

我们应该如何在Java中使用向量,就像我们在C++中使用它们一样?

我想创建一个GradeBook类,然后为每个学生创建一个对象,并将它们的名称和courseName和Grade保存在一个向量中,然后最后将它们全部打印出来.这是我的代码:

public static void main(String [] args)
    {
        Vector<GradeBook> gVec = new Vector<GradeBook>() ;
        Scanner sc = new Scanner (System.in) ;

        String sName = sc.nextLine();
        String cName = sc.next();
        int grade = sc.nextInt() ;
        while(!sName.equals("end"))
        {
            GradeBook st = new GradeBook() ;
            st.setCouseInfo(sName, cName, grade) ;
            gVec.add(st) ;
            sName = sc.nextLine();
            cName = sc.next();
            grade = sc.nextInt() ;
        }
    }
Run Code Online (Sandbox Code Playgroud)

prgoram获取名称,检查它是否"结束",然后获取courseName和等级,将它们设置为GradeBook字段,即studentName,courseName和courseGrade,然后将它们添加到GradeBook的向量中.

但是在程序的最后我打印结果时遇到了问题,它不能像我在C++中那样做,就像:

for ( int i=0;i<gVec.size();i++)
{
System.out.println(gVec[i].studentName);
System.out.println(gVec[i].courseName);
System.out.println(gVec[i].courseGrade);
}
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个关于如何在java中使用向量的提示吗?谢谢!

java class vector

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

在Java中向对象添加对象

我正在尝试将一个对象添加到向量中,当我使用下面的代码粘贴时,我得到的错误是"令牌上的语法错误,错位的构造(s)".和"令牌上的语法错误"gamePaddle",在此令牌之后预期的VariableDecloratorID." 我到处寻找,找不到我做错了什么,他们都告诉我像这样构建Vector.错误发生在启动ListOfGameObjects.add的行上(...

class GameWorld {
/**
 * Code that instantiate, hold, and manipulate GameOobjects and related game state data.
 * @author Tyler Thomas
 *
 */
        Paddle gamePaddle = new Paddle();
        Ball gameBall = new Ball();
        Edge topEdge = new Edge(50, 150);
        Edge bottomEdge = new Edge(50, 0);
        Edge leftEdge = new Edge(0, 75);
        Edge rightEdge = new Edge(100, 75);
        Vector<GameObject> ListOfGameObjects = new Vector<GameObject>();
        ListOfGameObjects.add(gamePaddle);
}
Run Code Online (Sandbox Code Playgroud)

java arrays vector

0
推荐指数
2
解决办法
6927
查看次数

有没有办法将字符添加到堆栈?

有没有办法将字符串中的字符添加到堆栈而无需创建自己的push和pop方法?

举例非常感谢!

java

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

如何避免Java中的重复字符串?

我希望能够将文本中的特定单词添加到矢量中.现在的问题是我想避免添加重复的字符串.我想到的第一件事是在添加它们之前比较所有字符串,随着条目数量的增加,这成为非常低效的解决方案.我能想到的唯一"时间效率"解决方案是unordered_multimap包含在C++ 11中的容器.我找不到Java的等价物.我想在地图上添加字符串,最后只是将所有条目复制到向量中,这样会比第一个解决方案更有效.现在我想知道是否有任何Java库可以满足我的需求?如果没有,我在Java中找不到任何C++ unordered_multimap容器,我找不到?

java string containers map

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

对于Java中的循环

我正在为最后几对夫妇编程,但今天我看到了一个新的东西,我在网上搜索但找不到完美的答案.有一个代码说

for(String string : mCha) // line 1
{
// loop working
}
Run Code Online (Sandbox Code Playgroud)

我想问一下1号线是什么意思?正如我所研究的那样,for循环中应该有3个参数,如果我们不想给出,那么应该遵循以下方法

for(;;)
{
}
Run Code Online (Sandbox Code Playgroud)

请解释我,因为我对这个语法完全陌生,我在网上搜索但找不到任何有用的东西.

java foreach for-loop

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

Java foreach循环不必要的浮动到int转换

Vector<Vector<Integer>> wavesInformation;

for(Vector<Integer> waveInformation : wavesInformation) {

    for(Integer enemyIndex : waveInformation) { 

    }

}
Run Code Online (Sandbox Code Playgroud)

给出运行时错误:

Exception in thread "LWJGL Application" java.lang.ClassCastException: java.lang.Float cannot be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)

for(Integer enemyIndex : waveInformation) {行.

这很混乱,因为没有使用浮动.

写作

for(Float enemyIndex : waveInformation) {   
Run Code Online (Sandbox Code Playgroud)

给出编译错误:

Type mismatch: cannot convert from element type Integer to Float
Run Code Online (Sandbox Code Playgroud)

编辑:

wavesInformation在调试模式下查找,发现存储的数字实际上是浮点数(0.0).

EDIT2:

嗯,这真的很奇怪.

出于实验目的,我将for循环更改为:

for(int i = 0 ; i < waveInformation.size() ; i++) {
Run Code Online (Sandbox Code Playgroud)

我试图将值waveInformation赋给变量,如下所示:

float x = waveInformation.get(i);
Run Code Online (Sandbox Code Playgroud)

和: …

java foreach json vector libgdx

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

为什么 Vector&lt;String&gt; 在以多线程样式访问时不以同步方式运行

根据我的理解,如果一个线程已经在访问它,Vector 应该阻止其他线程的整个集合。我在尝试着

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import java.util.concurrent.CopyOnWriteArrayList;

public class MyTest1{
    
//  static ArrayList<String> l1 = new ArrayList<>(Arrays.asList("A", "B", "C"));
    static Vector<String> l1 = new Vector<>(Arrays.asList("A", "B", "C"));
//  static List<String> l1 = Collections.synchronizedList(Arrays.asList("A", "B", "C"));

    public static void main(String[] args) {
        Thread t1 = new Thread(new MyThread1());
        Thread t2 = new Thread(new MyThread2());
        t1.start();
        t2.start();
        System.out.println(Thread.currentThread() + "adding X " + l1.add("X"));
        System.out.println(Thread.currentThread() + "adding Y " + l1.add("Y"));
        System.out.println(Thread.currentThread() + …
Run Code Online (Sandbox Code Playgroud)

java collections concurrency multithreading

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

编写类是Vector的子类,java

只是希望我能找人告诉我我这样做是对的,因为我之前从未写过这样的东西.所以我必须编写一个名为ProcessQueue的类,它是Vector的子类,以及一个定义空队列的构造函数.Vector也将保存"对象"类型的项目.所以这里......

public class ProcessQueue<Vector>{

ProcessQueue(){}


}
Run Code Online (Sandbox Code Playgroud)

java constructor vector

-2
推荐指数
2
解决办法
2631
查看次数

在java中同步确保其他线程的内存更新?

由于许多误解,我从头开始重新阐述了这个问题。提问的初衷没有改变。许多评论仍然引用旧的问题文本。

有关文档volatile指出,它确保其他线程以一致的方式看到内存更新。然而,volatile很少使用。

据我所知,synchronized块的目的是使线程不同时执行这些关键部分。是否也会synchronized像其他线程一样导致一致的内存更新volatile

java multithreading volatile

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