Az ezen a lapon található java források itt érhetők el.
Itt pedig a byte-kódú, azaz a lefordított változat.
Írassuk ki a v vektor elemeit!
// VektorKiir.java import java.util.*; class VektorKiir { static Vector v=new Vector(10); public static void main(String argv[]) { for(int i=0;i<5;i++) v.insertElementAt(new Integer(i),i); v.insertElementAt("Szia Világ!",5); v.removeElementAt(2); for(Enumeration e = v.elements();e.hasMoreElements();) { System.out.println(e.nextElement()); } } } |
A fenti program eredménye:
0 1 3 4 Szia Világ! |
Készítsünk egy Nebantsvirag osztályt, ez lesz a megfigyelt
objektum. Ennek lesz egy változik metódusa, amivel az objektumot
megváltoztatjuk, és ez gondoskodik a megfigyelők értesítéséről is. Majd
írunk megfigyelőket, egy Szamlalo nevűt, ami megszámolja, hogy
hányszor változtattuk meg az objektumot; valamint egy Spion nevűt,
ami a megfigyelt objektum változásakor a konzolra kiír egy üzenetet, amely
tartalmazza a Nebantsvirag által a NotifyObservers()
metódusnak átadott objektumot is.
// VizsgalApp.java import java.util.*; class Szamlalo implements Observer { int változások; public void update(Observable o, Object obj) { változások++; } public int változásokSzáma() { return változások; } } class Spion implements Observer { public void update(Observable o, Object obj) { System.out.println("Ne bántsátok szegényt! Te meg, '" + obj +"', menj vissza!"); } } class Nebantsvirag extends Observable { public void változik(Object o) { setChanged(); notifyObservers(o); } } class VizsgalApp { public static void main(String argv[]) { Nebantsvirag n=new Nebantsvirag(); Szamlalo s=new Szamlalo(); Spion fióka=new Spion(); n.addObserver(s); n.addObserver(fióka); n.változik(new Integer(100)); n.változik("piszka, motoszka"); System.out.println("A Nebántsvirágot " + s.változásokSzáma()+ "-szor változtatták."); } } |
A fenti program eredménye:
Ne bántsátok szegényt!Te meg, '100' menj vissza! Ne bántsátok szegényt!Te meg, 'piszka, motoszka' menj vissza! A Nebántsvirágot 2-szor változtatták. |
Készítsünk két bitsorozatot, amelyek emberek tulajdonságait írják le:
a kék_a_szemük bitsorozat i-edik eleme true,
ha az i-edik emberünk kékszemű. Hasonlóan, a barnahajúak
bitsorozat az embereink barnahajúságát fejezi ki. Írassuk ki a kékszeműeket,
a barnahajúakat és azokat, akiknek kék a szeme és barna a haja!
// SzemesHajasok.java import java.util.*; class SzemesHajasok { static BitSet barnahajúak = new BitSet(), kék_a_szemük = new BitSet(9); static void initSets() { for(int i=1;i<5;i++) barnahajúak.set(i); for(int i=3; i<10;i++) kék_a_szemük.set(i); } public static void main(String argv[]) { initSets(); System.out.println("Barnahajúak:"+barnahajúak); System.out.println("Kék a szemük:"+kék_a_szemük); barnahajúak.and(kék_a_szemük); //az eredmény a barnahajúak bitsorozatban lesz System.out.println("Barnahajúak és kék a szemük:" + barnahajúak); } } |
A fenti program eredménye:
Barnahajúak:{1,2,3,4} Kék a szemük:{3,4,5,6,7,8,9} Barnahajúak és kék a szemük:{3,4} |
Ebben a példaprogramban megpróbálunk minél többet megtudni az aktuális
időről:
// datum.java import java.util.*; class datum { public static void main(String[] args) { // Melyik időzónák is jók nekünk, magyaroknak? (1 óra Greenwich-től) String[] jók=TimeZone.getAvailableIDs(1*60*60*1000); System.out.println("Greenwich-től keletre 1 órányira levő időzónák:"); for(int i=0;i < jók.length;i++) System.out.println(" " + jók[i]); // Vesszük azt, amit hivatalosan használunk: SimpleTimeZone ect = new SimpleTimeZone(1,"ECT"); // Beállítjuk a nyári időszámítás kezdetét április első vasárnapjára, // hajnal 2 órára ect.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2*60*60*1000); // ... és a végét október utolsó vasárnapjára, szintén 2 órára. ect.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2*60*60*1000); // Ezzel az időzónával kezdünk egy időszámítást: Calendar calendar = new GregorianCalendar(ect); // Az aktuális időpillanatot lekérdezzük Date Most = new Date(); calendar.setTime(Most); System.out.println("Az aktuális idő:"); System.out.print(calendar.get(Calendar.ERA)==0 ? "i.e. " : "i.sz "); System.out.print(calendar.get(Calendar.YEAR) + "."); System.out.print((calendar.get(Calendar.MONTH)+1) + "."); System.out.print(calendar.get(Calendar.DATE) + " "); System.out.print(calendar.get(Calendar.AM_PM)==1?"du ":"de "); System.out.print((calendar.get(Calendar.HOUR)+1) + ":"); System.out.print(calendar.get(Calendar.MINUTE) + ":"); System.out.print(calendar.get(Calendar.SECOND) + " mp. "); System.out.println(calendar.get(Calendar.MILLISECOND) + " ezredmp."); System.out.print("Most az év " + calendar.get(Calendar.WEEK_OF_YEAR) + ". hetében járunk, "); System.out.println("Ez egyébként a(z) "+ calendar.get(Calendar.WEEK_OF_MONTH) + ". ebben a hónapban."); } } |
Az alábbi program kilistázza a futtató gépen elérhető Locale-okat,
majd a listából kiválasztott ország adott nyelvén megjeleníti az aktuális
dátumot és időt a lista felett. A listában elöl az ország neve áll, kerek
zárójelben az ország rövidítése, míg szögletes zárójelben az ország ISO
rövidítése áll, ezt követi a nyelv hasonló leírása.
// LocaleTest.java import java.awt.*; import java.awt.event.*; import java.applet.*; import java.util.*; import java.text.*; public class LocaleTest extends Applet implements ItemListener { private Locale locales[]; boolean isStandalone = false; java.awt.List list = new java.awt.List(); TextField textField = new TextField(); public void init() { list.addItemListener(this); this.setLayout(new BorderLayout()); this.add(list, BorderLayout.CENTER); this.add(textField, BorderLayout.NORTH); locales=DateFormat.getAvailableLocales(); for (int i=0; i < locales.length; i++) { list.add( locales[i].getDisplayCountry()+"("+ locales[i].getCountry()+ ")["+locales[i].getISO3Country()+"] "+ locales[i].getDisplayLanguage()+"("+ locales[i].getLanguage()+ ")["+locales[i].getISO3Language()+"]" ); } } public void itemStateChanged(ItemEvent e) { textField.setText( DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT, locales[list.getSelectedIndex()] ).format(new Date()) ); } } |
A fenti program képe:
Ez az alapértelmezett erőforrásosztály:
// MyResource.java import java.util.*; public class MyResource extends ListResourceBundle { public Object[][] getContents() { return contents; } static final Object[][] contents = { // Ezt kell kitölteni {"HelpLabel","Help"}, {"FileMenuLabel","File"} }; } |
Ez pedig a leszármazott, amely magyar nyelvű:
// MyResource_hu_HU.java import java.util.*; public class MyResource_hu_HU extends ListResourceBundle { public Object[][] getContents() { return contents; } static final Object[][] contents = { // Ezt kell kitölteni {"HelpLabel","Súgó"}, {"FileMenuLabel","Fájl"} }; } |
És itt következik a felhasználó (teszt)program:
// myres.java import java.util.*; public class myres { public static void main(String[] args) { Locale Magyar = new Locale("hu","HU"); ResourceBundle myResources = ResourceBundle.getBundle("MyResource", Magyar); System.out.println(myResources.getObject("HelpLabel")); System.out.println(myResources.getObject("FileMenuLabel")); myResources = ResourceBundle.getBundle("MyResource",Locale.getDefault()); System.out.println(myResources.getObject("HelpLabel")); System.out.println(myResources.getObject("FileMenuLabel")); } } |
A fenti program képe:
Súgó Fájl Help File |
A MyResource.properties nevű fájl tartalma:
# MyResource.properties HelpLabel = Help FileMenuLabel = File # MyResource.properties EOF |
A MyResource_hu_HU.properties nevű fájl tartalma:
# MyResource_hu_HU.properties HelpLabel = Súgó FileMenuLabel = Fájl # MyResource_hu_HU.properties EOF |
A felhasználó (teszt)program és az eredmény megegyezik az előző példában szereplővel.
Egy nagyon egyszerű alkalmazás:
// tokenizer.java import java.util.*; public class tokenizer { public static void main(String[] args) { String s =" public static void main"; StringTokenizer st = new StringTokenizer(s); while (st.hasMoreTokens()) { System.out.println(st.nextToken());} } } |
A fenti program eredménye:
public static void main |
A következő példában az időzítő visszafelé számol::
// Count.java import java.util.Timer; import java.util.TimerTask; public class Count { public static void main(final String args[]) { final Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { int i = 5; public void run() { System.out.println(i--); if (i< 0) timer.cancel(); } }, 0, 1000); } } |
A fenti program eredménye:
5 4 3 2 1 0 |