Java array assignment (multiple values)

后端 未结 10 1457
醉梦人生
醉梦人生 2020-12-24 06:45

I have a Java array defined already e.g.

float[] values = new float[3];

I would like to do something like this further on in the code:

相关标签:
10条回答
  • 2020-12-24 07:12

    Yes:

    float[] values = {0.1f, 0.2f, 0.3f};
    

    This syntax is only permissible in an initializer. You cannot use it in an assignment, where the following is the best you can do:

    values = new float[3];
    

    or

    values = new float[] {0.1f, 0.2f, 0.3f};
    

    Trying to find a reference in the language spec for this, but it's as unreadable as ever. Anyone else find one?

    0 讨论(0)
  • 2020-12-24 07:16
        public class arrayFloats {
          public static void main (String [] args){
            float [] Values = new float[3];
            float Incre = 0.1f;
            int Count = 0;
    
            for (Count = 0;Count<3 ;Count++ ) {
              Values [Count] = Incre + 0.0f;
              Incre += 0.1f;
              System.out.println("Values [" + Count + "] : " + Values [Count]);
            }
    
    
          }
        }
    
    //OUTPUT:
    //Values [0] : 0.1
    //Values [1] : 0.2
    //Values [2] : 0.3
    

    This isn't the all and be all of assigning values to a specific array. Since I've seen the sample was 0.1 - 0.3 you could do it this way. This method is very useful if you're designing charts and graphs. You can have the x-value incremented by 0.1 until nth time.

    Or you want to design some grid of some sort.

    0 讨论(0)
  • 2020-12-24 07:18
    values = new float[] { 0.1f, 0.2f, 0.3f };
    
    0 讨论(0)
  • 2020-12-24 07:23

    for example i tried all above for characters it fails but that worked for me >> reserved a pointer then assign values

    char A[];
    A = new char[]{'a', 'b', 'a', 'c', 'd', 'd', 'e', 'f', 'q', 'r'};
    
    0 讨论(0)
  • 2020-12-24 07:24

    Java does not provide a construct that will assign of multiple values to an existing array's elements. The initializer syntaxes can ONLY be used when creation a new array object. This can be at the point of declaration, or later on. But either way, the initializer is initializing a new array object, not updating an existing one.

    0 讨论(0)
  • 2020-12-24 07:26

    You may use a local variable, like:

        float[] values = new float[3];
        float[] v = {0.1f, 0.2f, 0.3f};
        float[] values = v;
    
    0 讨论(0)
提交回复
热议问题