- void reverse()
2. Các lp bao ki u nguyên th y (Wrapper class)
Các giá tr nguyên th y không ph i là i t ng trong Java. có th thao tác c trên các giá tr nguyên th y (giá tr s , kí t và logic) thì gói java.lang cung c p các l p bao gói (Wrapper) cho t ng ki u d li u nguyên th y (g i t t là l p bao). Các l p bao có
nh ng c tính chung sau:
Các toán t t o l p chung. Các l p bao (tr l p Character ch có m t toán t t o l p) u có hai toán t t o l p:
Toán t t o l p s d ng giá tr nguyên th y t o ra i t ng t ng ng
Character charObj = new Character(‘a’); Boolean boolObj = new Boolean(true); Integer intObj = new Integer(2002); Float floatObj = new Float(3.14F); Double doubleObj = new Double(3.14);
Toán t th hai: chuy n các i t ng l p String bi u di n cho các giá tr nguyên th y v các l p t ng ng. Các toán t này s ném ra ngo i l NumberFormatException khi giá tr String truy n vào hàm t o không h p l .
Boolean boolObj =newBoolean(“true”); Integer intObj =newInteger(“2002”);
Float floatObj =newFloat(“3.14F”); Double doubleObj=newDouble(“3.14”);
Có các hàm ti n ích chung: valueOf(String s), toString(), typeValue(), equals().
M i l p (tr l p Character) u nh ngh a hàm staticvalueOf(String s) tr l i i ng t ng ng. Các hàm này ném ra ngo i l NumberFormatException khi giá tr String truy n vào ph ng th c không h p l .
Boolean boolObj = Boolean.valueOf(“true”); Integer intObj = Integer.valueOf(“2002”); Float floatObj = Float.valueOf(“3.14F”); Double doubleObj= Double.valueOf(“3.14”);
Các l p vi t è hàm toString() tr l i là các i t ng String bi u di n cho các giá tr nguyên th y d ng xâu.
String charStr = charObj.toString(); // “a” String boolStr = boolObj.toString(); // “true” String intStr = intObj.toString(); // “2002” String doubleStr = doubleObj.toString(); // “3.14”
Các l p nh ngh a hàm typeValue() tr l i các giá tr nguyên th y t ng ng v i các i t ng nguyên th y.
boolean b = boolObj.booleanValue(); // true int i = intObj.intValue(); // 2002 float f = floatObj.floatValueOf(); // 3.14F double d = doubleObj.doubleValueOf(); // 3.14 char c = charObj.charValue(); // ‘a’
Các l p vi t è hàm equals() th c hi n so sánh b ng nhau c a các i t ng nguyên th y.
Character charObj =newCharacter(‘a’);
boolean charTest = charObj.equals(‘b’); // false Integer intObj1 = Integer.valueOf(“2010”); boolean intTest = intObj.equals(intObj1); // false L p Boolean
L p này nh ngh a hai i t ng Boolean.TRUE, Boolean.FALSE bi u di n cho hai giá tr nguyên th y true và false t ng ng.
L p Character
L p Character nh ngh a hai giá tr c c ti u, c c i Character.MIN_VALUE,
Character.MAX_VALUE và các giá tr ki u ký t Unicode. Ngoài ra l p này còn nh ngh a m t s hàm static x lý trên các ký t :
static boolean isLowerCase(char ch)// true n u ch là ký t th ng static boolean isUpperCase(char ch)// true n u ch là ký t vi t hoa static boolean isDigit(char ch) // true n uch là ch s
static boolean isLetter(char ch)// true n u ch là ch cái
static boolean isLetterOrDigit(char ch) // true n u ch là ch ho c là s static char toUpperCase(char ch)// Chuy n ch v ch vi t hoa
static char toLowerCase(char ch)// Chuy n ch v ch vi t th ng static char toTitleCase(char ch) // Chuy n ch v d ng tiêu . Các l p bao ki u s
Các l p Byte, Short, Integer, Long, Float, Double là các l p con c a l p Number. Trong các l p này u xác nh hai giá tr :
<L p bao>.MIN_VALUE <L p bao>.MAX_VALUE là các gi i h n c a các s trong ki u ó. Ví d ,
byte minByte = Byte.MIN_VALUE; // -128
int maxInt = Integer.MAX_VALUE; // 2147483647
Trong m i l p bao có hàm typeValue() chuy n các giá tr c a các i t ng nguyên th y v giá tr s : byte byteValue() short shortValue() int intValue() long longValue() float floatValue() double doubleValue()
Trong m i l p bao còn có hàm staticparseType(String s) chuy n các giá tr c bi u di n d i d ng xâu v các giá tr s :
byte value1 = Byte.parseByte(“16”); int value2 = Integer.parseInt(“2002”); double value3 = Double.parseDouble(“3.14”);
Ví d : Vi t ch ng trình nh p vào m t dãy s tùy ý và s p x p theo th t t ng d n.
import java.io.*;
class SapXep{
static int[] day;
static void nhap(){ String str;
int n = day.length;
DataInputStream stream =newDataInputStream(System.in); System.out.println("Nhap vao " + n + " so nguyen");
for (int k = 0; k < n; k++){
try{
System.out.print(k + ": ); str = stream.readLine();
day[k] = Integer.valueOf(str).intValue(); }catch(IOException e){
System.err.println("I/O Error!"); }
}} }
static void hienThi(){ int n = day.length;
for (int k = 0; k < n; k++)
System.out.print(day[k] + " "); System.out.println();
}
static void sapXep(){ int x, max, k;
for(int i =day.length-1; i > 0; i--){ max = day[i];k = i; for (int j = 0; j < i; j++) if (max < day[j]){ max = day[j]; k = j; } day[k] = day[i]; day[i] = max; } }
public static void main(String[] args){ String str;
int n;
DataInputStream stream =newDataInputStream(System.in); System.out.print("\nCho biet bao nhieu so nhap vao: ");
try{
str = stream.readLine(); }catch(IOException e){
System.err.println("I/O Error!"); str = "0";
}
n = Integer.valueOf(str).intValue(); SapXep.day =newint[n];
nhap(); sapXep();
System.out.println("Day so duoc sap xep: "); hienThi();
}} } L p Void
L p này ký hi u cho i t ng c a l p Class bi u di n cho giá tr void.
3. L p Math
L p final class Math nh ngh a m t t p các hàm t nh th c hi n các ch c n ng chung c a toán h c nh các phép làm tròn s , sinh s ng u nhiên, tìm s c c i, c c ti u, v.v.
L p final class Math còn cung c p nh ng h ng s nh s e (c s c a logarithm), s pi thông qua Math.E và Math.PI.
Các hàm làm tròn và x lý các giá tr gi i h n
static int abs(int i) static long abs(long l) static float abs(float f) static double abs(double d)
+ Hàmabs() c n p ch ng tr l i giá tr tuy t i c a i s .
+ Hàmceil() tr l i giá tr nh nh t ki u double mà không nh h n i s và l i b ng s nguyên. Ví d ceil(3.14) cho giá tr 4.0 là s tr n trên c a i s .
static double floor(double d)
+ Hàmfloor() tr l i giá tr l n nh t ki u double mà không l n h n i s và l i b ng s nguyên. Ví d floor(3.14) cho giá tr 3.0 là s sàn d i c a i s .
static int round(float f d) static long round(double d)
+ Hàmround() c n p ch ng tr l i s nguyên g n nh t c a i s .
static int max(int a, int b) static long max(long a, long b) static float max(float a, float b) static double max(double a, double b)
+ Hàmmax() c n p ch ng tr l i giá tr c c i c a hai i s .
static int min(int a, int b) static long min(long a, long b) static float min(float a, float b) static double min(double a, double b)
+ Hàmmin() c n p ch ng tr l i giá tr c c ti u c a hai i s . Các hàm l y th a
static double pow(double d1, double d2)
+ Hàmpow() tr l i giá tr là l y th a c a d1 và d2 (d1d2).
static double exp(double d)
+ Hàmexp() tr l i giá tr là lu th a c s e và s m d (ed).
static double log(double d)
+ Hàmlog() tr l i giá tr là lô-ga-rit t nhiên (c s e) c a d.
static double sqrt(double d)
+ Hàmsqrt() tr l i giá tr là c n b c hai c a d , ho c giá tr NaN n u i s âm. Các hàm ng giác
static double sin(double d)
+ Hàmsin() tr l i giá tr là sine c a góc d c cho d i d ng radian.
static double cos(double d)
+ Hàmcos() tr l i giá tr là cose c a góc d c cho d i d ng radian.
static double tan(double d)
+ Hàmtan() tr l i giá tr là tangent c a góc d c cho d i d ng radian. Hàm sinh s ng u nhiên
static double random()