相关疑难解决方法(0)

在Java布尔数组中命名布尔元素

我被困在一件简单的事情上.我有一系列名为"标签"的布尔值.能够通过布尔值访问数组的每个元素对我来说很重要:

public boolean energetic, calming, happy, sad;
public boolean[] trackTags = {energetic, calming, happy, sad};
Run Code Online (Sandbox Code Playgroud)

我传入并为trackTags数组分配布尔值(让我们说[true,true,true,false].所以,当我调用trackTags [0]时,我得到"真实".但是,当我打印"精力充沛"时 -它应该与trackTags [0]相同,值总是为false.我知道布尔值初始化为false,但是当我在trackTags数组中切换某些值为"true"时,命名元素是否也不会改变?

第二个问题:对于我与布尔变量名称交互的好方法是什么?具体来说,如果我传入一个String [] [happy,sad],然后只想切换对应于我的String数组中名称的boolean []值,这是否可行?我在循环遍历两个数组的元素时没有问题,但我显然无法将字符串与布尔值进行比较.

总而言之,是否有更好的方式与布尔名称进行交互?我真的很困惑.

java arrays

4
推荐指数
2
解决办法
897
查看次数

设置后,Java数组引用为null

public abstract class Class1 {
    protected static Object object1 = null;
    protected static Object object2 = null;

    public static Object[] objects = { object1, object2 };

    public static void main(String[] args) {
        new Class2();

        for (Object o : objects) {
            System.out.println(o);
        }
    }
}

public class Class2 extends Class1 {
    public Class2() {
        Class1.object1 = new String("String 1");
        Class1.object2 = new String("String 2");
    }
}
Run Code Online (Sandbox Code Playgroud)

这输出:

null
null
Run Code Online (Sandbox Code Playgroud)

为什么?

当我创建一个新实例时Class2,该类的构造函数初始化object1object2.

objects据我所知,包含对这些对象的引用.所以在他们初始化之后,我期待任何东西,但是无效.

有人能解释一下吗 谢谢.

java

4
推荐指数
1
解决办法
80
查看次数

Java 通过引用传递构造函数

我为测试类创建了两个对象,在那里我传递了值10 and 20,当我将第二个对象传递给测试构造函数时。它返回我0 0而不是40, 4作为输出。谁能解释我为什么会这样?

class Test{
        public int a,b;
        Test(){
                a=-1;
                b=-1;
        }
        Test(int i,int j){
                a=i;
                b=j;
        }
        void mest(Test o){
                o.a*=2;
                o.b=2*2;
        }
        Test(Test ob){
                ob.a*=2;
                ob.b=2*2;
        }
}
public class Main{
        public static void main(String[] args){
                Test t = new Test(10,20);
                System.out.println(t.a +" "+ t.b);// 10, 20
                t.mest(t);      
                System.out.println(t.a +" "+ t.b);// 20, 4
                Test t2 = new Test(t);
                System.out.println(t2.a +" "+ t2.b); // 0 , 0
        }
}
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
114
查看次数

Java静态方法参数

为什么以下代码返回100 100 1 1 1而不是100 1 1 1 1

public class Hotel {
private int roomNr;

public Hotel(int roomNr) {
    this.roomNr = roomNr;
}

public int getRoomNr() {
    return this.roomNr;
}

static Hotel doStuff(Hotel hotel) {
    hotel = new Hotel(1);
    return hotel;
}

public static void main(String args[]) {
    Hotel h1 = new Hotel(100);
    System.out.print(h1.getRoomNr() + " ");
    Hotel h2 = doStuff(h1);
    System.out.print(h1.getRoomNr() + " ");
    System.out.print(h2.getRoomNr() + " ");
    h1 = doStuff(h2);
    System.out.print(h1.getRoomNr() + " …
Run Code Online (Sandbox Code Playgroud)

java parameters static pass-by-reference pass-by-value

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

有人可以解释一下java是如何通过值传递的

当我拿一个数组时,像这样:

int anArray[] = new int[5];
//initialize to 0

doStuff(anArray);

//inside doStuff
anArray[3] = 731;
//passes back to main

System.out.println(anArray[3]); // outputs 731
Run Code Online (Sandbox Code Playgroud)

这不是通过参考传递的吗?是什么赋予了?

java pass-by-reference pass-by-value

3
推荐指数
1
解决办法
128
查看次数

"获取"后HashMap值的变化

我有一个

private Map<String,List<ProductScheme>> discountMap = new HashMap<String,List<ProductScheme>>();
Run Code Online (Sandbox Code Playgroud)

现在,如果我从列表中获取列表discountMap并在列表中添加项目,我将不得不重新列入列表,discount map否则将不需要?

java

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

Java函数参数是否总是按值传递给数组?

可能重复:
Java是"传递引用"吗?

如果我们有大byte[]数组(如40Mb),我们想用方法发送它

method(array);
Run Code Online (Sandbox Code Playgroud)

数组会被复制吗?因此,Java env => 80Mb内存将增加另外40Mb ,对吗?

如果是,我们如何在调用方法后销毁'first'数组?

java arrays pass-by-value

3
推荐指数
1
解决办法
2984
查看次数

将对象分配为null

如果我实例化一个对象并将其传递给一个函数,在这个函数中我将该对象赋值为null.似乎从函数返回时,对象仍然存在.

我只想知道何时分配null,会发生什么.

java

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

参数是否应该用作Lua中的变量?

我在Java中被告知我应该避免修改原始参数,例如

public int doStuff(int begin, int end) {
  /* loop or something */
  begin++; //bad
  end--; //also bad
  /* end loop */
  return
}
Run Code Online (Sandbox Code Playgroud)

相反,我应该做点什么

public int doStuff(int begin, int end) {
  int myBegin = begin; //something like this
  int myEnd = end;
  /* stuff */
  return
}
Run Code Online (Sandbox Code Playgroud)

所以,我一直在用lua做这件事

function do_stuff(begin, last)
  local my_begin = begin
  local my_last = last
  --stuff
  my_begin = my_begin + 1
  my_last = my_last - 1
  --stuff
end
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否

function do_stuff(begin, last)
  --stuff
  begin = …
Run Code Online (Sandbox Code Playgroud)

convention lua

3
推荐指数
1
解决办法
73
查看次数

Collections.sort()会影响所有ArrayLists.我如何只排序一个列表而不排序其他列表?

我有三个ArrayLists:
一个用于按照输入的顺序存储用户输入,位于主类中.
第二个与第一个完全相同,但它被传递给一个remTrip被复制的方法并返回结果.
第三个是list1在下面的代码中,这是正在处理的代码.

public static ArrayList<String> remTrip( ArrayList<String> a){
    //code here
    ArrayList<String> list1 = a;
    Collections.sort(list1);
    //code to remove triplicates from the list and returns the result
}
Run Code Online (Sandbox Code Playgroud)

我想保持第ArrayList<String>一个按照它的顺序(即{"dog", "cat" , "tiger", "cat", "cat"}),但显然是对Collections.sort()所有ArrayLists 进行排序.

我如何只对列表中的一个进行排序而不对其他列表进行排序?

java sorting arraylist

3
推荐指数
1
解决办法
584
查看次数