相关疑难解决方法(0)

为什么foreach语句不会改变元素值?

为什么以下打印老板而不是低音?

String boss = "boss";
char[] array = boss.toCharArray();

for(char c : array)
{
 if (c== 'o')
     c = 'a'; 
}
System.out.println(new String(array)); //How come this does NOT print out bass?It prints boss.
Run Code Online (Sandbox Code Playgroud)

java foreach

49
推荐指数
2
解决办法
3万
查看次数

对于每个循环都无法初始化数组中的对象

我会快速解决这个问题.我有一个简单的课程

class Vector{
    float x, y;
}
Run Code Online (Sandbox Code Playgroud)

另一个类有这些对象的数组作为其成员

Vector[] buffer;
Run Code Online (Sandbox Code Playgroud)

我像这样初始化它:

buffer = new Vector[8];
for(Vector v: buffer)
    v = new Vector();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在这个数组中访问这个对象的成员时,我直接得到一个NullPointerException到我的堆栈跟踪.也就是说,尚未构造数组的对象.另一方面,这个更传统的代码非常完美:

buffer = new Vector[8];
for(int i = 0; i<8; i++)
    buffer[i] = new Vector;
Run Code Online (Sandbox Code Playgroud)

正如讨论所指出的那样,编译后两者都应该相同.

我的问题是,为什么每个循环都无法从项目数组初始化/构造对象?

java syntax for-loop

8
推荐指数
2
解决办法
2552
查看次数

For-Each和Java中的指针

好的,所以我想要迭代一个ArrayList并删除一个specefic元素.但是,我在使用For-Each之类的结构时遇到了一些麻烦.当我运行以下代码时:

ArrayList<String> arr = new ArrayList<String>();
//... fill with some values (doesn't really matter)

for(String t : arr)
{
  t = " some other value "; //hoping this would change the actual array
}

for(String t : arr)
{
  System.out.println(t); //however, I still get the same array here
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何使't'成为'arr'的指针,以便我能够在for-each循环中更改值?我知道我可以使用不同的结构循环遍历ArrayList,但是这个看起来非常干净和可读,能够使't'成为指针会很好.

所有评论都表示赞赏!即使你说我应该吮吸它并使用不同的结构.

java foreach pointers arraylist

7
推荐指数
2
解决办法
4062
查看次数

为什么,在尝试填充数组时,我得到NullPointerException?

我正在尝试使用有关int数组的信息填充BitSets数组

    //ar is a SIZE*SIZE 1-D int array, SIZE is a constant

    //decare BitSet array
    BitSet bs[] = new BitSet[SIZE];

    //initialize BitSet array
    for (BitSet x:bs)
        x = new BitSet();

    //populate BitSet array
    for (int i = 0 ; i < ar.length ; i++)
        if (ar[i] > 0)
            bs[(i/SIZE)].set(SIZE-(i%SIZE));
Run Code Online (Sandbox Code Playgroud)

最后一行似乎是问题,但我看不出逻辑有什么问题.有任何想法吗?

为了使这一点更清楚,如果我有一个像0,3,4,5,0,1,0,0,1,2,7,0,2,3,0,3,2,0这样的数组, 0,0,2,1,5,8,0,0,0,0,0,1,0,0,0,6,0,0

我想得到一个可以表示为011101,001110,110110,001111,000001,000100的bitset数组

java arrays bitset

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

标签 统计

java ×4

foreach ×2

arraylist ×1

arrays ×1

bitset ×1

for-loop ×1

pointers ×1

syntax ×1