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


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

Re: Aspect questions?

From Lew <noone@lewscanon.com>
Newsgroups comp.lang.java.programmer
Subject Re: Aspect questions?
Date 2012-03-04 17:07 -0800
Organization albasani.net
Message-ID <jj13jl$qre$1@news.albasani.net> (permalink)
References (20 earlier) <XnsA008660779DFEjpnasty@94.75.214.39> <jilopr$lof$1@news.albasani.net> <XnsA008A84123C55jpnasty@94.75.214.39> <jin75c$8ci$1@news.albasani.net> <XnsA00CB84AA9E0jpnasty@94.75.214.39>

Show all headers | View raw


Novice wrote:
> Lew wrote:
>> ...

> The ArrayList article in the Java (1.7) API is at this URL:
> http://docs.oracle.com/javase/7/docs/api/index.html. From there,  scroll
> down in the lower left index window to find ArrayList and click on it; the
> article appears in the main pane of the browser. With regards to
> performance, we get various clues in the introduction to the article (the
> part about the Field Summary), including:

'ArrayList' has its own URL, also, but yes.

> "The size, isEmpty, get, set, iterator, and listIterator operations run in

I'd've been satisfied with just the URL. But your answers are exactly right.

> That first sentence is a bit evasive if you have no idea how a linked list
> would perform but that's what it says....

How does a linked list perform?

>>>> Summary:
>>>> Interface: what to do
>>>> Class:     how to do it
...
>> Give me an example of some unit of functionality you'd like to design,
>> in broad terms, and I'll do just that.
>>
> I think that would be an interesting exercise. Let's do one that I've
> already done myself and that you (probably) haven't. I'm sure I'll learn
> some things by seeing how you approach it.
>
> I have a project (that regularly undergoes polishing) to produce resumes.
> More specifically, it creates various formats of my own resume (and only my
> own resume.) Each of the resumes I generate contains the exact same
> information obtained from a single file but I generate it in several
> formats: an HTML version, a Java applet, an ASCII text version, a PDF
> version (using iText), and a Word version. I also generate supporting
> files, including a CSS file for the HTML version of the resume, and a short
> PDF containing contact information for references.

What are the overall modules? For example: "Obtain resume from single file", 
"Export to format X", "Generate references document", ...

> The program that generates the resumes and supporting files is written in
> Java. The data file that is parsed to create each format of the resume is a
> Java ResourceBundle of the "list" type. NOw, I'm only producing the resumes

Sorry, "list" type?

> in English so I should mention that I am open to the possibility of
> creating the resume in additional languages - I have a working knowledge of
> two other (human) languages - so I chose to use a Resource Bundle so that I
> could easily generate resumes in additional languages. Otherwise, I'd have
> probably just used a standard text file or more likely a properties file.
>
> Given the fact that several resumes containing the same data are being
> generated there would seem to be obvious opportunities for refactoring and
> probably at least one interface. This code has gone through various
> permutations but I've used a single interface with a single method in my
> existing code. The code works but I'm not at all sure it is designed well.

What interface? What method?

> I'd be very curious to get your take on it. I expect that the design has
> major flaws and I'd like to clean those up once I find out what they are.
>
> Does that sound reasonable to you? I'm basically asking you to talk me
> through the way you would design it knowing what I've told you. Naturally,
> you're free to ask as many questions as you like to understand what I'm
> trying to do.

We'll go step by step.

>> Why do you use more sets than lists?
>>
> Most of the things I put in collections should not have duplicates so I
> enforce that via Sets. Naturally, if duplicates are appropriate, I'll use a
> list.

Exactly right.

...
>>> for example, that a HashSet normally performs best and a TreeSet
>>> worst with a LinkedHashSet typically performing almost as well as a
>>> HashSet. So that's obviously a good place to start.
>>
>> "normally"? "performs"? "best"?
>>
> Just a generalization I saw in the tutorial for the Java Collection
> Classes. Let me get you a reference....
>
> Assuming you're already in the Java 1.7 API, the articles on ArrayList and
> LinkedList both have this line: "This call is a member of the Java
> Collections Framework". If I click that, then Tutorial, then Interfaces,
> then Set Interface, I come to this paragraph which was the basis for my
> generalization:
>
> "The Java platform contains three general-purpose Set implementations:
> HashSet, TreeSet, and LinkedHashSet. HashSet, which stores its elements in
> a hash table, is the best-performing implementation; however it makes no
> guarantees concerning the order of iteration. TreeSet, which stores its
> elements in a red-black tree, orders its elements based on their values; it
> is substantially slower than HashSet. LinkedHashSet, which is implemented
> as a hash table with a linked list running through it, orders its elements
> based on the order in which they were inserted into the set (insertion-
> order). LinkedHashSet spares its clients from the unspecified, generally
> chaotic ordering provided by HashSet at a cost that is only slightly
> higher."
...

>> The questions above are to stimulate thought. The questions that
>> follow are for you to answer here.

You did it in the opposite order, answering above and thinking below. That's fine.

>> What are the performance differences (if any! - question every
>> assumption in a question) between:
>> - 'ArrayList<E>' and 'LinkedList<E>'?
>
> I've cited the API on this already. Would you like me to paraphrase to show
> that I understand what they're saying?

No, I wanted you to answer down here in the first place.

>> - 'HashSet<E>', 'TreeSet<E>' and 'LinkedHashSet<E>'?
>
> I've cited the Tutorial on this already. Would you like me to paraphrase to
> show that I understand what they're saying?

Unnecessary. Just answer the questions below. And I am not so sure you do, 
completely, yet.

>> For your claim that "HashSet normally performs best", define:
>> - "normally"
>> - "performs"
>> - "best"
>> ...

> Basically, if you don't care about the order of the elements of the Set,
> you'll find HashSet fastest. If you care about the order, LinkedHashSet
> will be faster than TreeSet.

Did you notice that "the order" is different between 'LinkedHashSet' and 
'TreeSet'?

> There's nothing to suggest any other factors, such as the size of the
> entry, has any effect on the performance of the Set implementation.

On what basis should you choose which of these three 'Set' implementations to 
use at any given point?

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg

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


Thread

Aspect questions? Novice <novice@example..com> - 2012-02-24 20:10 +0000
  Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-24 13:05 -0800
    Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 05:47 +0000
      Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-24 23:40 -0800
        Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 17:02 +0000
          Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 12:08 -0800
            Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 22:12 +0000
              Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 14:27 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 23:29 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 18:33 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 14:38 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:49 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:53 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 18:17 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 16:01 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 17:22 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 12:25 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 21:08 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:33 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 17:05 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 20:18 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 21:29 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-27 05:44 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:37 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-28 00:04 -0800
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-02-28 01:39 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 14:54 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-28 17:24 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 04:53 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:08 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 05:12 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 21:38 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 17:27 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 12:22 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 22:50 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 17:24 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:00 +0000
                Re: Aspect questions? Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-02-29 09:14 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-29 09:55 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 21:31 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-29 23:06 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 04:33 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-04 23:00 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-04 17:07 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-05 15:33 +0000
                JavaDoc linking (Was: Aspect questions?) Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-03-05 08:38 -0800
                Re: JavaDoc linking (Was: Aspect questions?) Novice <novice@example..com> - 2012-03-05 17:40 +0000
                Re: JavaDoc linking (Was: Aspect questions?) Patricia Shanahan <pats@acm.org> - 2012-03-05 21:25 -0800
                Re: JavaDoc linking (Was: Aspect questions?) Arne Vajhøj <arne@vajhoej.dk> - 2012-03-06 17:23 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-05 23:45 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-03-06 06:03 -0400
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-06 21:05 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:11 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:09 -0500
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-26 23:43 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 05:20 +0000
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-02-26 21:32 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 17:36 +0000
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 13:18 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 14:05 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 14:33 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 14:53 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 15:16 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 17:57 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 22:59 +0000
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-28 05:50 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:03 +0000
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-02-27 13:17 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 22:55 +0000
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-27 05:58 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 18:14 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-28 00:12 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-28 02:04 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:22 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:11 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:14 -0500
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-28 23:09 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:25 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-01 00:22 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-01 01:44 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-29 23:24 -0800
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-01 21:19 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 01:52 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-03 01:39 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-05 15:38 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-05 22:50 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-05 23:46 -0800
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-03-06 08:14 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-06 21:23 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-08 20:10 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 01:49 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-01 22:38 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-03-02 06:05 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 14:25 +0000
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-03-02 18:10 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 14:12 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-02 08:57 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-05 15:57 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-05 23:48 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-07 20:33 +0000
                Re: Aspect questions? Lew <lewbloch@gmail.com> - 2012-03-07 13:09 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:20 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-02 14:28 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:16 -0500
                Re: Aspect questions? markspace <-@.> - 2012-02-26 10:10 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 20:52 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 13:48 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 13:47 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:40 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:36 -0500
                Re: Aspect questions? markspace <-@.> - 2012-02-26 16:04 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 19:38 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 17:09 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-26 20:08 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 19:43 -0500
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-27 22:03 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:18 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 13:43 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 01:11 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 21:49 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 18:37 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 12:28 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-28 00:55 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 17:37 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:57 +0000
                Re: Aspect questions? Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-02-28 03:21 -0600
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-28 09:19 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:12 -0500
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-28 05:59 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-28 17:27 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 16:07 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:26 -0500
              Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 18:22 -0500
                Re: Aspect questions? markspace <-@.> - 2012-02-25 20:22 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 22:20 -0800
                Re: Aspect questions? markspace <-@.> - 2012-02-26 00:04 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 00:21 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 00:33 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:43 -0500
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-26 11:18 +0000
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-26 11:04 -0400
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-26 10:22 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 21:04 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 14:01 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:46 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 09:50 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:38 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 20:49 +0000
      Re: Aspect questions? jlp <jlp@jlp.com> - 2012-02-25 09:47 +0100
        Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 17:03 +0000
          Re: Aspect questions? jlp <jlp@jlp.com> - 2012-02-25 20:02 +0100
      Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-25 10:20 -0400
        Re: Aspect questions? markspace <-@.> - 2012-02-25 08:18 -0800
          Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 12:04 -0500
        Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 17:17 +0000
          Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-25 18:40 -0400
          Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 18:18 -0500
      Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 09:21 -0500
      Re: Aspect questions? Roedy Green <see_website@mindprod.com.invalid> - 2012-02-25 14:35 -0800
  Re: Aspect questions? markspace <-@.> - 2012-02-24 14:30 -0800
    Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-24 19:47 -0500
      Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-24 20:52 -0800
        Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 09:31 -0500
        Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-25 11:05 -0400
          Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 12:20 -0800
  Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-24 19:00 -0500
  Re: Aspect questions? Tom Anderson <twic@urchin.earth.li> - 2012-02-25 00:22 +0000

csiph-web