Az Iterator interfész lehetőségeit
egész számok sorozatának kezelésén keresztül tekinthetjük meg.
import java.util.*;
public class Iteracio {
public static void main(String[] args) {
Collection c = new ArrayList();
for(int i = 0; i<10; ++i) c.add(Integer.toString(i));
String s = null;
Iterator it = c.iterator();
System.out.println("Minden szám:");
while(it.hasNext()) {
s = (String) it.next();
System.out.println(s);
if (Integer.valueOf(s).intValue() > 4) it.remove();
}
Iterator it2 = c.iterator();
System.out.println("5-nél kisebb számok:");
while(it2.hasNext()) {
s = (String) it2.next();
System.out.println(s);
}
}
}
A program forráskódja: Iteracio.java
|
|
Program a parancs-sorban megadott paraméterek szétválogatására aszerint,
hogy egyszer vagy többször szerepelnek.
import java.util.*;
public class Duplikacio {
public static void main(String args[]) {
Set egyedi = new HashSet();
Set duplikalt = new TreeSet();
for (int i=0; i < args.length; ++i)
if (!egyedi.add(args[i])) duplikalt.add(args[i]);
egyedi.removeAll(duplikalt);
System.out.println("Egyedi szavak: " + egyedi);
System.out.println("Duplikált szavak: " + duplikalt);
}
}
A program forráskódja: Duplikacio.java
|
|
Verem megvalósítása láncolt listával, valamint egy olyan példaprogram,
mely a verem segítségével lengyel formájú (postfix) aritmetikai
kifejezések kiértékelését végzi. Az argumentumokat a parancs-sorban
kell megadni (egész számok), a műveletek a következők lehetnek:
összeadás (+) és szorzás (.).
Példa a futtatásra:
Ez a 2*(3+5) kifejezés értékét számítja ki, az eredmény 16.
import java.util.*;
public class Verem extends LinkedList {
public Verem(Collection c) {
super(c);
}
public void push(Object o) {
addFirst(o);
}
public Object top() {
return getFirst();
}
public Object pop() {
return removeFirst();
}
}
import java.util.*;
public class VeremProba
{
public static void main(String[] args)
{
Collection c = Arrays.asList(args);
Verem v = new Verem(c);
String s1 = null, s2 = null, s3 = null;
try {
s1 = (String)(v.pop());
while(!v.isEmpty()) {
s2 = (String)(v.pop());
s3 = (String)(v.pop());
if(s3.compareTo("+")==0) {
s1 = new String(String.valueOf(
Integer.valueOf(s1).intValue()
+ Integer.valueOf(s2).intValue()));
}
else if(s3.compareTo(".")==0) {
s1 = new String(String.valueOf(
Integer.valueOf(s1).intValue()
* Integer.valueOf(s2).intValue()));
}
}
System.out.println("Eredmény: " + s1);
}
catch(Exception e) {
System.out.println("Hibás kifejezés!");
}
}
}
A program forráskódja: Verem.java,
VeremProba.java
|
|
A program a parancs-sorban megadott szövegeket lexikografikusan
és hosszuk szerint rendezi, és növekvő sorrendben kiírja.
import java.util.*;
class Hosszusag {
static final Comparator hosszusagiSorrend = new Comparator() {
public int compare(Object o1, Object o2) {
String s1 = (String) o1;
String s2 = (String) o2;
return s1.length()-s2.length();
}
};
public static void main(String args[]) {
List parameterek = Arrays.asList(args); // Tömb->lista
Collections.sort(parameterek); // Rendezés
System.out.println("Lexikografikus sorrend:");
System.out.println(parameterek);
Collections.sort(parameterek, hosszusagiSorrend);
System.out.println("Hosszúsági sorrend:");
System.out.println(parameterek);
}
}
A program forráskódja: Hosszusag.java
|