19、增强for循环
格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)
{
}
对集合进行遍历。
只能获取集合元素。但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。
传统for和高级for有什么区别呢?
高级for有一个局限性。必须有被遍历的目标。
建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。
package
import
import
public class
{
public static void
{
ArrayList<String>al=new
al.add("abc01");
al.add("abc02");
al.add("abc03");
for(String s:al)
{
System.out.println(s);
}
int[]arr={1,3,5};
for(int
{
System.out.println(i);
}
HashMap<Integer,String> hs=new
hs.put(1, "a");
hs.put(2, "b");
hs.put(3, "c");
Set<Integer>s1=hs.keySet();
for(Integer s:s1)
{
System.out.println(s+" "+hs.get(s));
}
Set<Map.Entry<Integer, String>>s2=hs.entrySet();
for(Map.Entry<Integer, String>st:s2)
{
System.out.println(st.getKey()+" "+st.getValue());
}
}
}
20、可变参数
JDK1.5版本出现的新特性。
方法的可变参数。
在使用时注意:可变参数一定要定义在参数列表最后面。
可变参数。其实就是上一种数组参数的简写形式。不用每一次都手动的建立数组对象。
只要将要操作的元素作为参数传递即可。隐式将这些参数封装成了数组。
package
public class
{
public static void
{
show(2,3,4,5);
}
public static void show(int... arr)
{
System.out.println(arr.length);
}
}
21、静态导入
StaticImport 静态导入。
当类名重名时,需要指定具体的包名。
当方法重名是,指定具备所属的对象或者类。
package
import
import static java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员。
import static
import static java.lang.System.*;//导入了System类中所有静态成员。
class Static1 //extends Object
{
public static void
{
out.println("haha");
int[] arr = {3,1,5};
sort(arr);
int
out.println(Arrays.toString(arr));
System.out.println("Index="+index);
ArrayList al = new
al.add(1);
al.add(3);
al.add(2);
out.println(al);
sort(al);
out.println(al);
}
}
25、System类
System:类中的方法和属性都是静态的。
out:标准输出,默认是控制台。
in:标准输入,默认是键盘。
package
import
class
{
public static void
{
Properties prop = System.getProperties();
//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。
//那么可以通过map的方法取出该集合中的元素。
//该集合中存储都是字符串。没有泛型定义。
//如何在系统中自定义一些特有信息呢?
System.setProperty("mykey","myvalue");
//获取指定属性信息。
String value = System.getProperty("os.name");
System.out.println("value="+value);
//可不可以在jvm启动时,动态加载一些属性信息呢?
String v = System.getProperty("haha");
System.out.println("v="+v);
/*
//获取所有属性信息。
for(Object obj : prop.keySet())
{
String value = (String)prop.get(obj);
System.out.println(obj+"::"+value);
}
*/
}
}
26、Runtime类
Runtime对象
该类没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的。但是发现该类中还有非静态方法,说明该类肯定会提供了方法获取本类对象,而且该方法是静态的,并且返回类型是本类类型
该方法是:static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。
由这个特点可以看出该类使用单例设计模式完成
package
import
public class
{
public static void main(String[]args) throws
{
Runtime r=Runtime.getRuntime();
"C:\\1.gif");
p.destroy();
}
}
27、Date类
package
import
import
class
{
public static void
{
Date d=new
sop(d);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E hh:mm::ss");
sop(sdf.format(d));
long
sop(l);
new
sop(t1);
}
public static void
{
System.out.println(obj);
}
}
28、Calender类
package
import
import
class
{
public static void
{
Calendar c=Calendar.getInstance();
sop(c);
YEAR)+"年"+c.get(Calendar.MONTH)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
String[] mons = {"一月","二月","三月","四月"
,"五月","六月","七月","八月"
,"九月","十月","十一月","十二月"};
String[] weeks = {
"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",
};
int index = c.get(Calendar.MONTH);
int index1 = c.get(Calendar.DAY_OF_WEEK);
sop(c.get(Calendar.YEAR)+"年");
sop(mons[index]);
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
sop(weeks[index1]);
}
public static void
{
System.out.println(obj);
}
}
29、Math类
package
import
public class
{
public static void
{
double d=Math.ceil(16.34);//返回小于指定数据的最大整数
sop(d);
long l=Math.round(12.34);//四舍五入
sop(l);
double d1=Math.floor(12.34);//返回小于指定数据的最大整数
double d2=Math.pow(2, 3);//2的3次方
sop(d1);
sop(d2);
for(int
{
System.out.print(((int)(Math.random()*10)+1)+" ");
}
System.out.println();
Random r=new
for(int
{
int
System.out.print(t+" ");
}
}
public static void
{
System.out.println(obj);
}
}