Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 451


Previous 1060 Stories (530 Pages, 2 Per Page) Next

Which Collection should I use in my Java program? Part 1. Hashtable vs hashmap?

Go to all tips in General Java

Which Collection should I use in my Java program? Hashtable vs hashmap? Hashmap vs hashset? Hashmap vs hashtable? hashmap vs arraylist? More? I compared all the collections in my table below! Oooh...

All the these questions I asked myself at least 10 times, if not even more. And I have not found any good Java Collections overview page on the Internet, where I could pick one collection and compare with another in one page, without going to multiple places.

This Comprehensive Java Collections overview page was the result of my half-day work. I think that the info I have now in two tables below can be good enough to make fast and right choice when you do not know which Java collection can be used in your application.

I hope that I have not done serious mistakes, if you find them, please inform me and I will correct the page. At the bottom of tables you can find Java code examples for all the collections described below.


General-purpose Implementations
Interfaces Implementations
  Hash table Resizable array Tree Linked list Hash table + Linked list
Set HashSet   TreeSet   LinkedHashSet

 

List   ArrayList

Vector

  LinkedList  
Queue          
Map HashMap

Hashtable

  TreeMap   LinkedHashMap

 

http://JavaFAQ.nu

Set: A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction.

Map: cannot contain duplicate keys; each key can map to at most one value.

The Map interface provides three collection views, which allow a map's contents to be viewed as a set of keys, collection of values, or set of key-value mappings. The order of a map is defined as the order in which the iterators on the map's collection views return their elements. Some map implementations, like the TreeMap class, make specific guarantees as to their order; others, like the HashMap class, do not.

46 Java Free lessons course on our site!

All Java Lessons contents page | Java Lesson 1 | Java Lesson 2 | Java Lesson 3 | Java Lesson 4 | Java Lesson 5 | Java Lesson 6 | Java Lesson 7 | Java Lesson 8 | Java Lesson 9 | Java Lesson 10 | Java Lesson 11 | Java Lesson 12 | Java Lesson 13 | Java Lesson 14 | Java Lesson 15 | Java Lesson 16 | Java Lesson 17 | Java Lesson 18 | Java Lesson 19 | Java Lesson 20 | Java Lesson 21 | Java Lesson 22 | Java Lesson 23 | Java Lesson 24 | Java Lesson 25 | Java Lesson 26 | Java Lesson 27 | Java Lesson 28 | Java Lesson 29 | Java Lesson 30 | Java Lesson 31 | Java Lesson 32 | Java Lesson 33 | Java Lesson 34 | Java Lesson 35 | Java Lesson 36 | Java Lesson 37 | Java Lesson 38 | Java Lesson 39 | Java Lesson 40 | Java Lesson 41 | Java Lesson 42 | Java Lesson 43 | Java Lesson 44 | Java Lesson 45 | Java Lesson 46

Important! Although Array  is not class in Java API, I have included it into the table below, because it is similar to collections in terms of storage. It can be used as a simplest "collection type" Smile.

That's why some functions and properties are not applicable to Array in the table below (marked as N/A).

Java Collections Comprehensive Overview Table, Part 1

  HashSet HashMap ArrayList TreeSet TreeMap LinkedList LinkedHashSet LinkedHashMap
Random
access
no no yes no no yes no no
Serializable yes yes yes yes yes yes yes yes
Synchronized no no no no no no no no
guarantees to the iteration order no no yes yes, yes yes yes yes
constant order over time no no yes,
see note 6
yes,
see note 7
yes,
see note 7
yes yes yes
permits null element yes yes,

null key,
null value

yes no no yes yes yes
is iteration
time proportional to size?****
yes note 1 yes almost,
see note 6
no,
log(n)
no,
log(n)
2n,
see note 8
yes,
just slightly below that of HashSet
yes
Is fail-fast? note 2 yes yes yes yes yes yes yes yes
is resizable? yes yes yes yes yes yes yes  
Only unique elements
(no duplicates)?
 
yes yes no,
allow duplicate elements
yes yes no yes yes
Notes   The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls. This class is roughly equivalent to Vector, except that it is unsynchronized.     Implements all optional list operations.
Implements the Queue interface, providing first-in-first-out queue operations for add, poll, etc.
- FIFO semantics
LinkedHashSet: Hash table and linked list implementation of the Set interface, with predictable iteration order. This implementation differs from HashSet in that it maintains a doubly-linked list running through all of its entries. This linked list defines the iteration ordering, which is the order in which elements were inserted into the set (insertion-order). Note that insertion order is not affected if an element is re-inserted into the set. LinkedHashMap: Hash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differs from HashMap in that it maintains a doubly-linked list running through all of its entries. This linked list defines the iteration ordering, which is normally the order in which keys were inserted into the map (insertion-order). Note that insertion order is not affected if a key is re-inserted into the map.
Since Java
version
1.2 1.2 1.2 1.2 1.2 1.2 1.4 1.4
Java Code Examples code examples for HashSet code examples for HashMap code examples for ArrayList code examples for TreeSet code examples for TreeMap code examples for LinkedList code examples for LinkedHashSet code examples for LinkedHashMap
Always visit http://JavaFAQ.nu when you need more info about Java!

To be continued


14113 bytes more | comments? | Printer Friendly Page  Send to a Friend | Score: 4.8
Posted by Javaaddict on Friday, May 05, 2006 (01:00:00) (13378 reads)

Java and PHP will work together!

Go to all tips in Good To Know

Look at Java PHP integration here! Examples included.

Good news for those who likes PHP as well as Java! In Java 6, J2EE (Java Enterprise edition) will be able to work with PHP and another scripting languages. Java and PHP will be intergated together. Java classes will be accessible from different scripting engines, for example from PHP. The Java classes will be a part of a Servlet application or will be in a standard Java VM.


The JavaTM Servlet specification (Servlet 2.4, JSR-154, is the latest version) defines the set of core abstractions that are used by Java developer writing Web Applications. These abstractions include those of Web Application context, session, request, response, etc.

When Java developers will write Web Applications, they will write classes that interact with these objects in well defined security, resource and class loader contexts.

A Java API that used, will possibly through JNI interact with an scripting language engine to access the desired Java objects. By now most of work is done for PHP (Zend Technologies, Ltd, is a part of team, developing the feature ), but it will be possible to work with script engine which will implement JSR 223.

It will be possible to bundle scripting pages into a WAR file, either stand-alone, or as part of an EAR, providing real Java PHP integration.

You can ask - What is difference from today? It is already possible to do Java PHP integration now... The difference is that it will be a part of Java installation and you do not need custom solutions and make it manualy...

It is possible to do Java PHP integration, look here:

1. Bridge (integrate) PHP into Java: you can either integrate PHP into a Java Servlet environment, which is the more stable and efficient solution. This provided by a SAPI module that interfaces with the Servlet server.

The Java Servlet SAPI enables the entire PHP processor to be run as a servlet. The primary advanatage of this from a PHP perspective is that web servers which support servlets typically take great care in pooling and reusing JVMs. Build instructions for the Servlet SAPI module can be found in php4/sapi/README. Notes:

  • While this code is intended to be able to run on any servlet engine, it has only been tested on Apache's Jakarta/tomcat to date. Bug reports, success stories and/or patches required to get this code to run on other engines would be appreciated.
  • PHP has a habit of changing the working directory. sapi/servlet will eventually change it back, but while PHP is running the servlet engine may not be able to load any classes from the CLASSPATH which are specified using a relative directory syntax, or find the work directory used for administration and JSP compilation tasks.

2. Or bridge (integrate) Java support into PHP. This can be done by this Java extension.

The Java extension provides a simple and effective means for creating and invoking methods on Java objects from PHP. The JVM is created using JNI, and everything runs in-process.

Requirements

You need a Java VM installed on your machine to use this extension.

Installation

Build instructions for this extension can be found in php4/ext/java/README.

Runtime Configuration

The php.ini settings involved in configuring the Java extension are java.library.path and java.class.path.

Examples

 

Java PHP working Example 1. Use Java from PHP Example

<?php
  // get instance of Java class java.lang.System in PHP
  $system = new Java('java.lang.System');

  // demonstrate property access
  print 'Java version='.$system->getProperty('java.version').' <br>';
  print 'Java vendor=' .$system->getProperty('java.vendor').' <br>';
  print 'OS='.$system->getProperty('os.name').' '.
              $system->getProperty('os.version').' on '.
              $system->getProperty('os.arch').' <br>';

  // java.util.Date example
  $formatter = new Java('java.text.SimpleDateFormat',
                        "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

  print $formatter->format(new Java('java.util.Date'));
?>

PHP Java working Example 2. Use Java from PHP: AWT Example

<?php
  // This example is only intented to be run as a CGI.

  $frame  = new Java('java.awt.Frame', 'PHP');
  $button = new Java('java.awt.Button', 'Hello Java World!');

  $frame->add('North', $button);
  $frame->validate();
  $frame->pack();
  $frame->visible = True;

  $thread = new Java('java.lang.Thread');
  $thread->sleep(10000);

  $frame->dispose();
?>
 

This tip is based on todays breaking news in Java and PHP world, php documentation from php.net site (examples).


5586 bytes more | comments? | Printer Friendly Page  Send to a Friend | Score: 0
Posted by Javaaddict on Wednesday, May 03, 2006 (18:57:06) (12664 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452|
451
| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy