[x3d-public] Better approachs, was: Re: Java SOCKS! jsail/Navigation/OrthoViewpoint.java in X3DJSAIL

John Carlson yottzumm at gmail.com
Wed Jul 30 00:47:13 PDT 2025


Duh, I forgot to test on more than one instance.  I'm going to send this
again.  But this may not be the last time.  I really apologize, I send an
email, then get another idea.  My wife needs tending to.

This works, so far.  Just it's probably 3 times the memory I would like to
use!

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.Collections;

public class NoModDoubleArray {
  public final double[] DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE = new double
[] {-1f,-1f,1f,1f};
  public final List<Double> NOMOD_FIELDOFVIEW_DEFAULT_VALUE;
  {{
    NOMOD_FIELDOFVIEW_DEFAULT_VALUE =
Collections.unmodifiableList(Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new)));
   }}
  public List<Double> MOD_FIELDOFVIEW;
  public NoModDoubleArray() {
    MOD_FIELDOFVIEW =
Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new));
    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
    try {
      System.out.println("Setting immutable index 0 to 0.0");
      NOMOD_FIELDOFVIEW_DEFAULT_VALUE.set(0, 0.0);
    } catch (UnsupportedOperationException ex) {
      ex.printStackTrace();
    }
    System.out.println("Setting double array index 0 to 0.0");
    DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE[0] = 0.0;
    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
    System.out.println("Mutable Array "+MOD_FIELDOFVIEW);
    System.out.println("Compare mutable to immutable
"+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));
    System.out.println("Setting mutable index 0 to 0.0");
    MOD_FIELDOFVIEW.set(0, 0.0);
    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
    System.out.println("Mutable Array "+MOD_FIELDOFVIEW);
    System.out.println("Compare mutable to immutable
"+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));
    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);
  }
  public static void main(String[] args) {
    new NoModDoubleArray();
    new NoModDoubleArray();
  }
}
==================================================================
$ java net/coderextreme/NoModDoubleArray
Immutable Array [-1.0, -1.0, 1.0, 1.0]
Setting immutable index 0 to 0.0
java.lang.UnsupportedOperationException
        at
java.base/java.util.Collections$UnmodifiableList.set(Collections.java:1504)
        at
net.coderextreme.NoModDoubleArray.<init>(NoModDoubleArray.java:20)
        at net.coderextreme.NoModDoubleArray.main(NoModDoubleArray.java:37)
Setting double array index 0 to 0.0
Immutable Array [-1.0, -1.0, 1.0, 1.0]
Mutable Array [-1.0, -1.0, 1.0, 1.0]
Compare mutable to immutable true
Setting mutable index 0 to 0.0
Immutable Array [-1.0, -1.0, 1.0, 1.0]
Mutable Array [0.0, -1.0, 1.0, 1.0]
Compare mutable to immutable false
Immutable Array [-1.0, -1.0, 1.0, 1.0]
Immutable Array [-1.0, -1.0, 1.0, 1.0]
Setting immutable index 0 to 0.0
java.lang.UnsupportedOperationException
        at
java.base/java.util.Collections$UnmodifiableList.set(Collections.java:1504)
        at
net.coderextreme.NoModDoubleArray.<init>(NoModDoubleArray.java:20)
        at net.coderextreme.NoModDoubleArray.main(NoModDoubleArray.java:38)
Setting double array index 0 to 0.0
Immutable Array [-1.0, -1.0, 1.0, 1.0]
Mutable Array [-1.0, -1.0, 1.0, 1.0]
Compare mutable to immutable true
Setting mutable index 0 to 0.0
Immutable Array [-1.0, -1.0, 1.0, 1.0]
Mutable Array [0.0, -1.0, 1.0, 1.0]
Compare mutable to immutable false
Immutable Array [-1.0, -1.0, 1.0, 1.0]

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250730/fc31712a/attachment.html>


More information about the x3d-public mailing list