黑马程序员_集合4(高级for,可变参数,静态导入,Date,Calendar,Math,System,RunTime)

来源:互联网 发布:淘宝diy动铁耳机 编辑:程序博客网 时间:2024/05/17 07:04

--------- android培训、java培训、期待与您交流!---------

 

一.高级For循环

1.格式:

for(数据类型 变量名 :被遍历的集合(Collection)或者数姐)

{

}

2.高级for对集合进行遍历。

只能获取集合元素,但是不能对集合进行操作。

迭代器除了遍历,还可以进行remove集合中元素的动作。

3.传统for循环和高级for循环有什么区别呢?

高级for有一个局限性,必须有被遍历的目标。

建议在遍历数组的时候,还是用传统for循环,因为传统for循环可以定义角标。

4.示例:

ArrayList<String> al = new ArrayList<String>();

al.add("abc1");

al.add("abc2");

al.add("abc3");

for (String s : al)

{

s ="kk";

System.out.println(s);

}

二 可变参数

1.JDK1.5版本出现的新特性。

方法的可变参数:

在使用时注意:可变参数一定要定义在参数列表的最后面。

2.代码演示:

class ParamMethodDemo

{

public static void main(String[] args)

{

//show(3,4);

/*

//虽然少定义了多个方法。但是每次都要定义一个数组,作为实际参数。

int[] arr = {3,4};

show(arr);

int[] arr1 = {2,3,4,5};

show(arr1);

*/

/*

可变参数

其实就是上一种数组参数的简写形式。

不用每一次都手动的建立数组对象。

只要将要操作的元素作为参数传递即可。

隐式将这些参数封装成了数组。

*/

show("haha",2,3,4,5,6);

//show(2,3,4,5,6);

//show(2,5,3,5,56,76,43,2,3,);

//show();

}

public static void show(int... arr)

{

System.out.println(arr.length);

}

public static void show(String str,int... arr)

{

System.out.println(arr.length);

}

}

三静态导入

StaticImport 静态导入

当类名重名时,需要指定具体的包名。

当方法重名时,要指定具体所属的对象或者类。

import static java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员。

import static java.lang.System.*;//导入了System类中所有静态成员。

四 System类

1.System(java.lang):

System:类中的方法和属性都是静态的。

out: 标准输出,默认是控制台。

in : 标准输入,默认是键盘。

该类中的方法:

1)static Properties getProperties()

确定当前的系统属性。

2)static String getProperty(String key)

获取指定键指示的系统属性。

3)static String getProperty(String key, String def)

获取用指定键描述的系统属性。

 

2.Properties(java.util)类:

extends Hashtable<Object,Object>

Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。

属性列表中每个键及其对应值都是一个字符串。


该类中的方法:

1)String getProperty(String key)

用指定的键在此属性列表中搜索属性。

2)String getProperty(String key, String defaultValue)

用指定的键在属性列表中搜索属性。

3)Object setProperty(String key, String value)

调用 Hashtable 的方法 put   相似。

 

五Runtime类

1.Runtime(java.lang)对象

该类并没有提供构造函数。

说明不可以new对象,那么会直接想到该类中的方法都是静态的。

发现该类中还有非静态方法。

说明该类肯定会提供了方法获取本类对象,而且该方法是静态的,并且返回值类型是本类类型。

由这个特点可以看出该类使用了单例设计模式完成。

该方法是static Runtime getRuntime();

2.该类中方法:

1)getRuntime()

public static Runtime getRuntime()

返回与当前 Java 应用程序相关的运行时对象。Runtime 类的大多数方法是实例方法,

并且必须根据当前的运行时对象对其进行调用。

2 exec()

public Process exec(String command)

throws IOException在单独的进程中执行指定的字符串命令。

这是一个很有用的方法。对于 exec(command) 形式的调用而言,其行为与调用 exec(command, null, null) 完全相同。

3.Process进程类----destroy()方法

abstract void destroy() 杀掉子进程。

 

六.Date

1.Date类(java.util包中)

1).构造方法:

public Date()

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。


2.DateFormat类(java.text包)

该类是个抽象类,其子类是SimpleDateFormat

1)SimpleDateFormat的构造方法:

SimpleDateFormat(String pattern)

用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

2)日期和时间模式 结果

"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT

"EEE, MMM d, ''yy" Wed, Jul 4, '01

"h:mm a" 12:08 PM

"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time

"K:mm a, z" 0:08 PM, PDT

"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM

"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700

"yyMMddHHmmssZ" 010704120856-0700

"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700

3)format()方法

public final String format(Date date)

将一个 Date 格式化为日期/时间字符串。

代码示例:

 
public static void main(String[] args)  {  Date d = new Date();  System.out.println(d);//打印的时间看不懂,希望有些格式。  //将模式封装到SimpleDateFormat对象中。  SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");  //调用format方法让模式格式化指定Date对象。  String time = sdf.format(d);  System.out.println("time= "+ time);  long l = System.currentTimeMillis();  Date d1 = new Date(l);  System.out.println("d1:"+d1); }

七 Calendar类

1.Calendar抽象类(java.util)-----日历

Calendar 对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值

1)Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等

日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量

2)getInstance()方法:

与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,

以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,

其日历字段已由当前日期和时间初始化:

Calendar rightNow = Calendar.getInstance();

3)get()方法:

public int get(int field)

返回给定日历字段的值

4)set()方法:

public final void set(int year,int month,int date)

设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值

5)add()方法:

public abstract void add(int field,int amount)

根据日历的规则,为给定的日历字段添加或减去指定的时间量。

例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点:


add(Calendar.DAY_OF_MONTH, -5)。

 

八 Math类和Random类

1.Math类(java.lang包中)//隐式导入类

1)ceil():

static double ceil(double a)

返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。

2)floor():

static double floor(double a)

返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

3)round():

static long round(double a)

返回最接近参数的 long。

4)pow():

static double pow(double a, double b)

返回第一个参数的第二个参数次幂的值。

5)random():

static double random()

返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。


 

2.Random类(java.util)

1)nextInt():

int nextInt()

返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

代码:

Random r = new Random();

for (int x=0; x<10; x++)

{

//int d = (int)(Math.random()*10+1);//返回0.0到1.0之间(含0不含1)的随机数。

int d = r.netInt(10)+1;

sop(d);

}

 

 

 

 

原创粉丝点击