java学习-JAVA基本排序法示例,JAVA数据类型转换 ,ArrayList用法,Calendar 简单应用

JAVA基本排序法示例
  Java合并排序法示例
	public class Coalition{ 

		public static void main(String[] args){
			/* 定义一个数组和二个整型变量 */
			int[] num = {65,87,15,23,46,48,52,79,97,53};
			int i,j;

			/* 合并排序法 */
			for (i = 0; i < 9; i++)
			for (j = i+1; j < 10; j++){
				if (num[i] > num[j]){
					num[i] = num[i] + num[j];
					num[j] = num[i] - num[j];
					num[i] = num[i] - num[j];
				}
			}

			/* 循环输出排序后的结果 */
			for (i = 0; i < 10; i++){
				System.out.println(num[i]);
			}
		}
	}

  Java冒泡排序法示例
	public class BubbleUp{

		public static void main(String[] args){
			/* 定义一个数组和三个整型变量 */
			int[] num = {65,87,15,23,46,48,52,79,97,53};
			int i,j,temp;

			/* 冒泡排序法 */
			for (i = 10; i > 0; i--)
			for (j = i-1; j > 0; j--){
				if (num[j] < num[j-1]){
					temp = num[j];
					num[j] = num[j-1];
					num[j-1] = temp;
				}
			}

			/* 循环输出排序后的结果 */
			for (i = 0; i < 10; i++){
				System.out.println(num[i]);
			}
		}
	}

  Java插入排序法示例
	public class Insert{ 

		public static void main(String[] args){
			/* 定义一个数组和三个整型变量 */
			int[] num = {65,87,15,23,46,48,52,79,97,53};
			int i,j,temp;

			/* 插入排序法 */
			for (i = 1; i < 10; i++){
				temp = num[i];
				for (j = i; j > 0 && temp < num[j - 1]; j--)
				num[j] = num[j - 1];
				num[j] = temp;
			}

			/* 循环输出排序后的结果 */
			for (i = 0; i < 10; i++){
				System.out.println(num[i]);
			}
		}
	}
JAVA数据类型转换 
 
 
 将字串 String 转换成整数 int 有两个方法:

1). int i = Integer.parseInt([String]);i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 DoubleFloatLong 的方法大同小异

 将整数 int 转换成字串 String 有叁种方法:

1). String s = String.valueOf(i); 2). String s = Integer.toString(i); 3). String s = "" + i;
注: DoubleFloatLong 转成字串的方法大同小异

 将布尔 boolean 变量转换为字符串 String

boolean bool = true; String s = String.valueOf(bool);
 这是一个例子,说的是JAVA中数据数型的转换
	package cn.com.lwkj.erts.register;
	import java.sql.Date;
	public class TypeChange{
	public TypeChange(){
		}
	//change the string type to the int type
	public static int stringToInt(String intstr){
		Integer integer;
		integer = Integer.valueOf(intstr);
		return integer.intValue();
		}
	//change int type to the string type
	public static String intToString(int value){
		Integer integer = new Integer(value);
		return integer.toString();
		}
	//change the string type to the float type
	public static float stringToFloat(String floatstr){
		Float floatee;
		floatee = Float.valueOf(floatstr);
		return floatee.floatValue();
		}
	//change the float type to the string type
	public static String floatToString(float value){
		Float floatee = new Float(value);
		return floatee.toString();
		}
	//change the string type to the sqlDate type
	public static java.sql.Date stringToDate(String dateStr){
		return java.sql.Date.valueOf(dateStr);
		}
	//change the sqlDate type to the string type
	public static String dateToString(java.sql.Date datee){
		return datee.toString();
		}
	public static void main(String[] args){
		java.sql.Date day ;
		day = TypeChange.stringToDate("2003-11-3");
		String strday = TypeChange.dateToString(day);
		System.out.println(strday);
		}
	}
 JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份。
	string->byte
	Byte static byte parseByte(String s) 
	byte->string 
	Byte static String toString(byte b) 
	char->string 
	Character static String to String (char c) 
	string->Short 
	Short static Short parseShort(String s) 
	Short->String 
	Short static String toString(Short s) 
	String->Integer 
	Integer static int parseInt(String s)
	Integer->String 
	Integer static String tostring(int i) 
	String->Long 
	Long static long parseLong(String s) 
	Long->String 
	Long static String toString(Long i) 
	String->Float 
	Float static float parseFloat(String s) 
	Float->String 
	Float static String toString(float f) 
	String->Double 
	Double static double parseDouble(String s)
	Double->String
	Double static String toString(Double)
 数据类型

基本类型有以下四种:

int长度数据类型有:byte(8bits/1字节)、short(16bits/2字节)、int(32bits/4字节)、long(64bits/8字节)
float长度数据类型有:单精度(32bits/4字节 float)、双精度(64bits/8字节 double)
boolean类型变量的取值有:ture(1bits)、false(1bits)
char数据类型有:unicode字符(16bits/2字节)
对应的类类型:IntegerFloatBooleanCharacterDoubleShortByteLong

 转换原则

从低精度向高精度转换
byteshortintlongfloatdoublechar
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换

 基本类型向类类型转换

正向转换:通过类包装器来new出一个新的类类型的变量

Integer a = new Integer(2);
反向转换:通过类包装器来转换
int b = a.intValue();
 类类型向字符串转换

正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量

eg1: int i = Integer.valueOf("123").intValue();

说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。

eg2: float f = Float.valueOf("123").floatValue();

说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。

eg3: boolean b = Boolean.valueOf("123").booleanValue();

说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。

eg4: double d = Double.valueOf("123").doubleValue();

说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。

eg5: long l = Long.valueOf("123").longValue();

说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。

eg6: char = Character.valueOf("123").charValue();

说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。

 基本类型向字符串的转换

正向转换:如

int a = 12;
String b;
b = a + "";
反向转换:通过类包装器

eg1: int i = Integer.parseInt("123")

说明:此方法只能适用于字符串转化成整型变量

eg2: float f = Float.valueOf("123").floatValue();

说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。

eg3: boolean b = Boolean.valueOf("123").booleanValue();

说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。

eg4: double d = Double.valueOf("123").doubleValue();

说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。

eg5: long l = Long.valueOf("123").longValue();

说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。

eg6: char = Character.valueOf("123").charValue();

说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。

ArrayList用法
System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。

 一.优点

1、支持自动改变大小的功能
2、可以灵活的插入元素
3、可以灵活的删除元素


 二.局限性

跟一般的数组比起来,速度上差些


 三.添加元素

1、public virtual int Add(objectvalue);

将对象添加到ArrayList的结尾处

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
结果为abcde

2、public virtual void Insert(intindex,objectvalue);

将元素插入ArrayList的指定索引处

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	aList.Insert(0,"aa");
结果为aaabcde

3、public virtual void InsertRange(intindex,ICollectionc);

将集合中的某个元素插入ArrayList的指定索引处

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	ArrayList aList2 = new ArrayList();
	aList2.add("tt");
	aList2.add("ttt");
	aList.InsertRange(2,aList2);
结果为abtttttcde
 四.删除

1、public virtual void Remove(objectobj);

ArrayList中移除特定对象的第一个匹配项,注意是第一个

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	aList.Remove("a");
结果为bcde

2、public virtual void RemoveAt(intindex);

移除ArrayList的指定索引处的元素

	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	aList.RemoveAt(0);
结果为bcde

3、public virtual void RemoveRange(intindex,intcount);

ArrayList中移除一定范围的元素。Index表示索引,count表示从索引处开始的数目

	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	aList.RemoveRange(1,3);
结果为ae

4、public virtual void Clear();

ArrayList中移除所有元素。


 五.排序

1、public virtual void Sort();

对ArrayList或它的一部分中的元素进行排序。

	ArrayList aList = new ArrayList();
	aList.add("e");
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	DropDownList1.DataSource = aList; //DropDownList DropDownList1;
	DropDownList1.DataBind();
结果为eabcd
	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	aList.Sort(); //排序
	DropDownList1.DataSource = aList; //DropDownList DropDownList1;
	DropDownList1.DataBind();
结果为abcde

2、public virtual void Reverse();

ArrayList或它的一部分中元素的顺序反转。

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	aList.Reverse(); //反转
	DropDownList1.DataSource = aList; //DropDownList DropDownList1;
	DropDownList1.DataBind();
结果为edcba
 六.查找

a) public virtual int IndexOf(object);
b) public virtual int IndexOf(object,int);
c) public virtual int IndexOf(object,int,int);

返回ArrayList或它的一部分中某个值的第一个匹配项的从零开始的索引。没找到返回-1。

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e");
	int nIndex = aList.IndexOf("a"); //1
	nIndex = aList.IndexOf("p"); //没找到,-1
d) public virtual intLastIndexOf(object);
e) public virtual intLastIndexOf(object,int);
f) public virtual intLastIndexOf(object,int,int);

返回ArrayList或它的一部分中某个值的最后一个匹配项的从零开始的索引。

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("a"); //同0
	aList.add("d");
	aList.add("e");
	int nIndex = aList.LastIndexOf("a"); //值为2而不是0
g) public virtual bool Contains(objectitem);

确定某个元素是否在ArrayList中。包含返回true,否则返回false


 七.其他

1、public virtual int Capacity{get;set;}

获取或设置ArrayList可包含的元素数。

2、public virtual int Count{get;}

获取ArrayList中实际包含的元素数。 CapacityArrayList可以存储的元素数。CountArrayList中实际包含的元素数。
Capacity总是大于或等于Count。如果在添加元素时,Count超过Capacity,则该列表的容量会通过自动重新分配内部数组加倍。
如果Capacity的值显式设置,则内部数组也需要重新分配以容纳指定的容量。如果Capacity被显式设置为0,则公共语言运行库将其设置为默认容量。默认容量为16
在调用Clear后,Count0,而此时Capacity切是默认容量16,而不是0

3、public virtual void TrimToSize();

将容量设置为ArrayList中元素的实际数量。
如果不向列表中添加新元素,则此方法可用于最小化列表的内存系统开销。
若要完全清除列表中的所有元素,请在调用TrimToSize之前调用Clear方法。截去空ArrayList会将ArrayList的容量设置为默认容量,而不是零。

	ArrayList aList = new ArrayList();
	aList.add("a");
	aList.add("b");
	aList.add("c");
	aList.add("d");
	aList.add("e"); //Count=5,Capacity=16,
	aList.TrimToSize(); //Count=Capacity=5;

Calendar 简单应用
简单的 Calendar 应用演示

import java.util.Calendar;
public class TestDemo {

public void funDemo(){ //创建 Calendar 实例对象 Calendar date = Calendar.getInstance(); //获得当前年份 String year = String.valueOf(date.get(date.YEAR)); //获得当前月份 String month = String.valueOf(date.get(date.MONTH)); //获得当前日 String day = String.valueOf(date.get(date.DAY_OF_MONTH)); //获得当前时钟 String hour = String.valueOf(date.get(date.HOUR)); //获得当前分钟 String minute = String.valueOf(date.get(date.MINUTE)); //获得当前秒钟 String second = String.valueOf(date.get(date.SECOND)); //打印出当前日期 System.out.println("当前日期时间"); String dateTime = year+"年 "+month+"月 "+day+"日 "+hour+":"+minute+":"+second; System.out.println(dateTime);

//将天数加 D 天,打印 D 天后的日期 int D = 375; date.add(date.DAY_OF_YEAR, D); System.out.println("\n使用 date.add(date.DAY_OF_YEAR, 365) 后的显示"); System.out.println(date.get(date.YEAR)+"年 "+ date.get(date.MONTH)+"月 "+ date.get(date.DAY_OF_MONTH)+"日 "+ date.get(date.HOUR)+":"+ date.get(date.MINUTE)+":"+ date.get(date.SECOND));

//将年数加 Y 年 ,打印 Y 年后的日期 int Y = -3; date.add(date.YEAR, Y); System.out.println("\n使用 date.add(date.YEAR, -3) 后的显示"); System.out.println(date.get(date.YEAR)+"年 "+ date.get(date.MONTH)+"月 "+ date.get(date.DAY_OF_MONTH)+"日 "+ date.get(date.HOUR)+":"+ date.get(date.MINUTE)+":"+ date.get(date.SECOND)); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub TestDemo tdemo = new TestDemo(); tdemo.funDemo(); } }

运行显示效果如下 ( dateCalendar 实例对象 )

当前日期时间
2007年 1月 6日 10:50:46

使用 date.add(date.DAY_OF_YEAR, 375) 后的显示
2008年 1月 16日 10:50:46

使用 date.add(date.YEAR, -3) 后的显示
2005年 1月 6日 10:50:46

 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值