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


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

Re: alias for Integer

From Jim Janney <jjanney@shell.xmission.com>
Newsgroups comp.lang.java.programmer
Subject Re: alias for Integer
Date 2011-11-18 13:14 -0700
Organization Raptors on hoverboards
Message-ID <2p4ny19oj8.fsf@shell.xmission.com> (permalink)
References <21374513.220.1321627842805.JavaMail.geo-discussion-forums@yqmj32>

Show all headers | View raw


jrobinss <julien.robinson2@gmail.com> writes:

> Hi all,
>
> this is a simple question, so it may be silly...
>
> I am processing structures that contain integers, structures such as matrixes used in statistical analysis. As I implement these as Maps of indexes, I use the class Integer, as in
>
>   // Map<matrix index, DB index> <- I'd like to remove this comment!
>   public static Map<Integer, Integer> myMap = ...;
>
> Now what I'd like is to write
>   public static Map<MatrixIndex, DbIndex> myMap = ...;
>
> The advantage is that the code is auto-documented, but even better that the compiler will check that I never get mixed up in different indexes, by relying on strong typing.
>
> Usually, I would do this by extending the relevant class. But here it's Integer, which is final.
>
> Questions: 
> 1. is this a bad good idea, and I should proceed with Integer?
> 2. if not, how would you implement this?
> 3. is there any performance issue in defining my own classes instead of Integer?
>
> My current solution is to define my own classes for replacing Integer, such as:
>
> public final class MatrixIndex {
>   public final int value;
>   public MyIndex(int i) {value = i;}
> }
>
> I won't benefit from autoboxing, then... :-(
> (I'm just hoping it doesn't break too much of the code, because even though it's mine to break, I don't have infinite time)
>
> Note that (exceptionnally for me) performance *is* an issue here. I haven't yet narrowed it down, but the code executes very slowly and eats up much too much memory at the moment. I'm starting to optimize it, that's why I'm starting with strongly typing it to prevent errors.
>
> thanks for any tips!
> JRobinss

Switch to Ada?  If that's not an option, you should probably just stick
with Integer.  I think I understand what you're trying to do, but Java
just isn't good at expressing those kinds of constraints.

As far as performance is concerned, I think there are some open-source
projects that implement map-like structures with primitive keys, but I
don't have any experience using them.

-- 
Jim Janney

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


Thread

alias for Integer jrobinss <julien.robinson2@gmail.com> - 2011-11-18 06:50 -0800
  Re: alias for Integer markspace <-@.> - 2011-11-18 07:11 -0800
  Re: alias for Integer Roedy Green <see_website@mindprod.com.invalid> - 2011-11-18 07:32 -0800
  Re: alias for Integer Lew <lewbloch@gmail.com> - 2011-11-18 07:34 -0800
    Re: alias for Integer jrobinss <julien.robinson2@gmail.com> - 2011-11-18 08:26 -0800
      Re: alias for Integer Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-11-18 18:00 +0000
      Re: alias for Integer markspace <-@.> - 2011-11-18 10:17 -0800
      Re: alias for Integer Roedy Green <see_website@mindprod.com.invalid> - 2011-11-18 20:30 -0800
    Re: alias for Integer Roedy Green <see_website@mindprod.com.invalid> - 2011-11-18 20:23 -0800
  Re: alias for Integer Jim Janney <jjanney@shell.xmission.com> - 2011-11-18 13:14 -0700
  Re: alias for Integer Patricia Shanahan <pats@acm.org> - 2011-11-18 12:43 -0800
  Re: alias for Integer jrobinss <julien.robinson2@gmail.com> - 2011-11-21 01:50 -0800
  Re: alias for Integer Robert Klemme <shortcutter@googlemail.com> - 2011-11-21 20:58 +0100
  Re: alias for Integer David Lamb <dalamb@cs.queensu.ca> - 2011-11-21 15:38 -0500

csiph-web