Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #10124

Re: Size of an arraylist in bytes

From Eric Sosman <esosman@ieee-dot-org.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: Size of an arraylist in bytes
Date 2011-11-20 17:19 -0500
Organization A noiseless patient Spider
Message-ID <jabudb$qi0$1@dont-email.me> (permalink)
References <e9dcfb2d-dfef-4ae6-9d9f-979a8f08b962@t36g2000prt.googlegroups.com> <jabri2$763$1@dont-email.me> <c76a811a-7441-452a-89ea-8a99c11c1950@d37g2000prg.googlegroups.com>

Show all headers | View raw


On 11/20/2011 4:35 PM, sara wrote:
>[...]
> But do you have any answer to my second question?

     Only that you're going about it wrong.  As Andreas Leitgeb points
out, serializing an object is a different proposition than serializing
a bunch of "raw" values: It saves enough information to reconstruct an
"image" of the original object, with the same structure.

     What do I mean by "structure?"  Something like this:

	Integer x = new Integer(42);
	Integer y = new Integer(42);

Here we have two distinct Integer instances, each with the value 42.

	ArrayList<Integer> one = new ArrayList<Integer>();
	one.add(x);
	one.add(x);

The first ArrayList holds one of the Integer instances, twice, and
has nothing to do with the other.

	ArrayList<Integer> two = new ArrayList<Integer>();
	two.add(x);
	two.add(y);

The second ArrayList holds both Integer instances, once each.

     If you serialize `one' and read it back again, you'll get an
ArrayList with two references to the same Integer.  Reading it back
will produce one Integer, not two.  There will be two objects in
the serialized stream: One ArrayList and one Integer, plus enough
additional information to reassemble them.  (Actually, there will
probably be additional objects: The ArrayList owns an array, which
is an object in its own right, and perhaps there might be others.
But there'll be two "visible" objects in the stream.)

     If you serialize `two' and read it back, you'll get an ArrayList
with two references to two distinct Integers: Three "visible" objects
in all.

     It's all right to serialize an object graph and store it on disk.
It is *not* all right to try to update the serialization in place,
nor to modify the object and expect a re-serialization to have the
same size.  If you need in-place operations or same-size guarantees,
you'll need to invent a different external representation for your data.

-- 
Eric Sosman
esosman@ieee-dot-org.invalid

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Size of an arraylist in bytes sara <sarasara82@gmail.com> - 2011-11-20 13:01 -0800
  Re: Size of an arraylist in bytes markspace <-@.> - 2011-11-20 13:05 -0800
    Re: Size of an arraylist in bytes sara <sarasara82@gmail.com> - 2011-11-20 13:11 -0800
      Re: Size of an arraylist in bytes Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-11-20 21:58 +0000
      Re: Size of an arraylist in bytes markspace <-@.> - 2011-11-20 14:08 -0800
      Re: Size of an arraylist in bytes Patricia Shanahan <pats@acm.org> - 2011-11-20 14:50 -0800
      Re: Size of an arraylist in bytes Arne Vajhøj <arne@vajhoej.dk> - 2011-11-20 18:06 -0500
      Re: Size of an arraylist in bytes Lew <lewbloch@gmail.com> - 2011-11-20 20:28 -0800
  Re: Size of an arraylist in bytes Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-11-20 16:30 -0500
    Re: Size of an arraylist in bytes sara <sarasara82@gmail.com> - 2011-11-20 13:35 -0800
      Re: Size of an arraylist in bytes Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-11-20 17:19 -0500
    Re: Size of an arraylist in bytes Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-11-20 16:58 -0500
      Re: Size of an arraylist in bytes Patricia Shanahan <pats@acm.org> - 2011-11-20 14:04 -0800
        Re: Size of an arraylist in bytes Arne Vajhøj <arne@vajhoej.dk> - 2011-11-20 17:18 -0500
          Re: Size of an arraylist in bytes Patricia Shanahan <pats@acm.org> - 2011-11-20 14:48 -0800
            Re: Size of an arraylist in bytes Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 22:12 -0500
      Re: Size of an arraylist in bytes Lew <lewbloch@gmail.com> - 2011-11-20 20:44 -0800
        Re: Size of an arraylist in bytes Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 22:16 -0500
          Re: Size of an arraylist in bytes Lew <lewbloch@gmail.com> - 2011-11-25 20:15 -0800
  Re: Size of an arraylist in bytes Roedy Green <see_website@mindprod.com.invalid> - 2011-11-20 22:25 -0800
    Re: Size of an arraylist in bytes Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 22:11 -0500

csiph-web