OPI_LR2011_ch3
.pdf81
e isEmpty() f true, i f
( . g (
firstElement(), - lastElement(), -
- get(int index)
elementAt(int index).
D @ 'f object. '
.
. ( object[] ( toArray() toArray(Object[] ). E
, i . e
contains(object element) f true, i element
f . e containsAll(Collection ) f
true, i .
/ @ g @
element:
–indexof(Object element) - f g
;
–indexOf(Object element, int begin) - g, @
begin @;
–lastIndexOf(object element) - f
;
–lastIndexOf(Object element, int start) - g
start @ . G i ,
f -1.
e remove(Object element) f g
( element. f true, i
g.
remove(int index) f index
f object.
5 @ void: removeElement(Object element) removeElementAt(int index), i
@ .
? ( removeRange(int begin, int end), i f . ? @
begin @ end @.
? coll (
removeAll(Collection coll). ?
(, g setSize(int newSize). ?
82
, @ coll, f
retainAll(Collection coll). ?
( clear()
removeAllElements() g setSize(). ' 7.1 @f @ .
' 7.1. =
Vector v = new Vector();
String s = "1562P, 5P/> R/ S2]OR2 4238<4=:/ 7= 9g2@=."; StringTokenizer st = new StringTokenizer(s, " \t\n\r,."); while(st.hasMoreTokens()){
// x6O4^NbR2 9g2@2 > 3=729/R2 N @OP:24 v.add(st.nextToken());
}
System.out.println(v.firstElement());
System.out.println(v.lastElement());
v.setSize(4); v.add("38<4=:/."); v.set(3, "372@N");
for(int i = 0; i < v.size; i++) System.out.print(v.get(i) + " "); System.out.println();
C vector f , ( 'f object,
- 'f, 'f @. D
f f . E (
@ . ' ,
g, @.
7.2.2 7 Stack 7 Hashtable 7 Properties
C stack java.util f f . >(stack) f
f LIFO(Last In - First Out). ' @ @f
( stack(). ' @
@ , " " ,
, i .
E vector, stack '
, i @ @ f@ :
push(Object item) -02R8j=b OgORO7: item N 9:OP; pop() - @/:5\=b @O4S78> OgORO7: 38 9:OP=;
peek() - ]/:=b @O4S78> OgORO7:, 7O @/:5\=n]/ >2\2 38 9:OP=; empty() - 0O4O@845b, ]/ 7O 0242^78> 9:OP;
search(object item) - 37=S26/:; 023/_8n OgORO7:= item N 9:O_8. iO4S78> OgORO7: R=b 023/_8n 1, 086 7/R OgORO7: 2 8 :.6. lPj2 OgORO7: 7O 37=>6O7/>, @O4:=b:;95 - 1.
83
' 7.2 f, (
.
' 7.2. ' (
import java.utii.*; class StackTest{
static boolean checkParity(String expression, String open, String close){ Stack stack = new Stack();
StringTokenizer st = new StringTokenizer(expression, " \t\n\r+*/-(){}", true); while(st.hasMoreTokens()) {
String tmp = st.nextToken(); if(tmp.equals(open)), stack.push(open);
if(tmp.equals(close)) stack.pop();
}
if(stack.isEmpty()) return true/return false;
}
public static void main(String[] args){ System.out.println(
checkParity(a -(b -(c - a) /(b + c) - 2), "(", ")");
}
}
7 Hashtable
C Hashtable g @f Dictionary. ?'f @ "@ - ".
C ( 'f Hashtable (size) -
, f i : f(capacity) - +,
((load factor) - @ +,
g f .
E 'f Hashtable f
: Hashtable();
Hashtable(int capacity);
Hashtable(int capacity, float loadFactor); Hashtable(Map f);
E 'f Hashtable @
:
Object put(Object key, Object value) - f " keyvalue ",
i @ key , @f value @ key, i ( f ;
void putAll(Map f) - f ( f.
get(Object key) f @ key
'f object.
e containsKey(object key) f true, i
f @ key.
84
e containsValue(Object value)
contains(object value) @ true, i f @
value. e isEmpty() f true, i
f . values() f
value + Collection. ? +
'f collection @@ @, . keySet() f
@ key + set. ? 'f set
@ @, .
7.3 , ( Hashtable
+ , . 7.1 - f
.
' 7.3. ; +
import java.util.*; class PhoneBook{
public static void main(String[] args){ Hashtabie yp = new Hashtabie();
String name = null; yp.put("John", "123-45-67"); yp.put("Lemon", "567-34-12"); yp.put("Bill", "342-65-87"); yp.put("Gates", "423-83-49"); yp.put("Batman", "532-25-08");
try{ |
name = args[0]; |
(catch(Exception e){ |
|
System.out.println("Usage: Java PhoneBook Name"); |
|
return; |
} |
if(yp.containsKey(name))
System.out.println(name + "'s phone = " + yp.get(name)); else
System.out.println("Sorry, no such name"); ) }
= 7.1 – = + @ @
85
7 Properties
C Properties g @f Hashtable. ?
. ' @ string.
Properties :
Properties() - @f ( 'f;
Properties(Properties default) - @f 'f
default.
E , i @ @-
: string getProperty(string key) - f @ key ; String getProperty(String key, String defaultValue) - f
@ key; i @ f, f defaultValue.
setProperty(String key, String value) f , i @ key f, @f , i @ key f.
load(Inputstream in) ( f in.
list(PrintStream out) £ list(PrintWriter out)
out. store(OutputStream out, String header)
out header.
E ( 7.4 f
Java.
' 7.4. ?
class Prop{
public static void main(String[] args){ System.getProperties().list(System.out);
} }
' Vector, Stack, Hashtabie, Properties @
- . ; Java2 f
. ? . 7.2. C
+. ' @ , i @
+. ? ; , +
List, Set Map.
' + List ( (
Vector, + - Hashtable. C List Set @ ,
'f + Collection.
86
= 7.2 – 0f +-
7.2.3 ( +( Collection
0 + collection java.util f
List set. ?
, :
–boolean add(Object obj) – f obj ;
f false, i ( f; f true, i g g;
–boolean addAll(Collection coll) – f
coll ;
–void clear() – f ;
–boolean contains(Object obj) – f obj
;
–boolean containsAll(Collection coll) – f
coll ;
–boolean isEmpty() – f, ( ;
–iterator iterator() – f ;
–boolean remove(object obj) – f
; f false, i , true, i
g g;
87
–boolean removeAll(Collection coil) – f
, i ( ;
–boolean retainAll(Collection coll) – f
, coll ;
–int size() – f ;
–object[] toArray() – f
;
–Object[] toArray(object[] a) – f
, i .
7.2.4 ( +( ListIterator
0 + ListIterator g @f + iterator,
@ i ,
. ? (
, f
.
? + ListIterator :
–void add(Object element) – f element
;
–boolean hasPrevious() – f true, i f
, i ;
–int nextIndex() – f ; i
f , f ;
–Object previous() – f
;
–int previous index() – f ;
–void set(Object element) – f
element; f next() previous(). ' 7.5
Listiterator list = v.listIterator(); // . ( f
// ' ( f
try{
while(list.hasNext()) // ' f
System.out.println(lit.next()); // '
//; ( . '
while(list. hasPrevious()) System.out.println.list.previblis());
}catch(Exception e)()
88
D, i next() previous()
.
7 4, n " EE ] 4 14
C ArrayList @ f + List
iterator. C ArrayList ( ( Vector, f (
( ( .
ArrayList : ArrayList()-@f
( 'f; ArrayList(Collection coil) - @f 'f, i
coll; ArrayList(int initCapacity) - @f
( 'f f initCapacity.
" "7( 4 4 1
C LinkedList @ f + List
, i @@ . ? f iterator listiterator. D (
p ,
.
LinkedList : LinkedList - @f
( 'f; LinkedList(Collection coll) - @f 'f, i
coll.
7.2.5 7(1;,<
0 + Comparator f :
int compare(Object obj1, object obj2) — f 'f , i objl
g obj2; , i ( @ ; , i obj1 g obj2;
boolean equals(Object obj) — @f 'f 'f obj,
@ true, i 'f .
E ( ( , g
, 'f
SortedMap . ”
. C, i @@ (
C HashSet @ f + set
iterator. C HashSet f ,
@ ( .
HashSet :
Hashset(); HashSet(int capacity); HashSet(int capacity, float loadFactor); HashSet(Collection coll).
89
)91 " , ! o4 4
C TreeSet @ f + sortedSet
iterator. C TreeSet g,
@ . D
@f g . ' f
( , 'f, i f
+ Comparator.
D g (, ,
, f - @, i
f (.
TreeSet : TreeSet(); TreeSet(Comparator ); TreeSet(Collection coll); TreeSet(SortedMap sf).
7.6 , (
.
' 7.6.
TreeSet ts = new TreeSet(new ComptexCompare()); ts.add(new Complex(1.2, 3.4));
ts. add(new Complex(-1.25, 33.4»; ts.add(new Complex(1.23, -3.45)); ts.add(new Complex(16.2, 23.4)); Iterator it = ts.iterator();
while(it.hasNext()),((Complex)it.next()).pr();
E
C
g . E ( f
g . D g
Collections.
( 94 17 Collections
? collections , (
, @@ Collections. > ( f
, f + List. E
collections f :
static void sort(List coll) - f @ coll, i
f + List;
static void sort(List coll, Comparator c) - f @ coll ,
'f . ' ( g :
static int binarySearch(List coll, Object element) - g f element
coll f
’f , i ; ’f f ,
element @, ;
90
static int binarySearchfList coll, Object element, Comparator c) - (,
, 'f .
/ g g : static object max(Collection coll) - f g
coll;
static Object max(Collection coll, Comparator c) – ( , 'f c;
static object min(Collection coll) - f g
ll;
static Object min(Collection coll, Comparator c) - ( , 'f .
E "g @"
:
static void shuffle(List coll) - @ ; static void shuffle(List coll, Random r) - @ 'f r.
reverse(List coll) @f g .
copy(List from, List to) @f @ from @ to.
fill(List coll, object element) f @ coll element.
7.3"9 ) 9 4
7.3.1.
@ , @ , (
.
7.3.2? Java -
.
7.3.3? :
1)Student: id, ' i, 0' , ' , E (, 5, ; +, 7, C, ’. > 'f. ?:
) +;) ( + ;
) , i ;) .
? +, . ? +
.
2)Customer: id, ' i, 0' , ' , 5, :
, : . >
'f. ?:
) @;
) , f
.