子类转父类无需强转。
父类转子类,需要强转,并且转换能否成功取决于被转换的对象是否真的是目标类型的一员:
class TBase{
int c=5;
}
public class zhuan extends TBase{
int a=10;
public static void main(String[] args) {
zhuan z=(zhuan)new TBase();
System.out.println(z.a);
System.out.println(z.c);
}
}
执行后如下:转换失败,因为被转换的对象本质上是TBase类对象,并不是zhuan类对象
public class zhuan extends TBase{
int a=10;
public static void main(String[] args) {
TBase z = new zhuan();
zhuan zz=(zhuan)z;
System.out.println(zz.a);
System.out.println(zz.c);
}
}
执行结果如下:转换成功,被转换对象原本是zhuan类对象,先被转为Tbase类,后被转为zhuan类,so,可以
Map.Entry说明:
Map是java中的接口,Map.Entry是Map的一个内部接口。
Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。
遍历所有的key-value:entrySet():Set<> entrySet = map.entrySet();再使用迭代器Iterator<Map.Entry<Integer, Integer>> entries = entrySet.iterator();,再使用getKey()或getValue()获取
数组中常用方法
声明数组
String[] aArray = new String[5];
String[] bArray = {"a","b","c", "d", "e"};
String[] cArray = new String[]{"a","b","c","d","e"};
1. 打印数组
int[] intArray = { 1, 2, 3, 4, 5 };
String intArrayString = Arrays.toString(intArray);
2. 从数组创建一个 ArrayList
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
3. 检查数组是否包含某一个值
String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
4. 合并数组
int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
// Apache Commons Lang library
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
5. 一行代码声明数组
method(new String[]{"a", "b", "c", "d", "e"});
6. 把数组中的元素用指定的分隔符连接起来
// containing the provided list of elements
// Apache common lang
String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
7. 把一个 ArrayList 转换成数组
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
String[] stringArr = new String[arrayList.size()];
arrayList.toArray(stringArr);
8. 把一个数组转换成 Set
Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
9. 反转数组
int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
10. 移除数组中的元素
int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
int与char的转换:
(1)int类型转char类型,将数字加一个‘0’,并强制类型转换为char即可。
(2)char类型装int类型,将字符减一个‘0’即可。
public static void main(String[] args) {
//int类型转char类型
int number = 9;
char cNumber= (char) (number+'0');
System.out.println("Number "+number+" to char is:"+cNumber);
//char类型转int类型
char cNumber2='3';
int number2=cNumber2-'0';
System.out.println("Char "+cNumber2+" to number is:"+number2);
}
ascii码转对应字符:char(ascii)
int转String有三种方式
(1)num + “”
(2)String.valueOf(num)
(3)Integer.toString(num)
//String -> StringBuffer
//创建一个String对象
String str = "Hi Java!";
System.out.println(str);
//方式一:构造方法
StringBuffer buffer = new StringBuffer(str);
System.out.println(buffer);
//方式二:通过append方法
StringBuffer buffer2 = new StringBuffer();
buffer2.append(str);
System.out.println(buffer2);
//StringBuffer -> String
//创建一个StringBuffer对象
StringBuffer buffer3 = new StringBuffer();
buffer3.append("Happy birthday Java!");
System.out.println(buffer3);
//方式一:通过构造方法
String str2 = new String(buffer3);
System.out.println(str2);
//方式二:通过toString方法
String str3 = buffer3.toString();
System.out.println(str3);