JavaSE(07)(数组高级操作及日期格式)
来源:互联网 发布:淘宝网人工客服热线 编辑:程序博客网 时间:2024/05/17 23:40
冒泡排序:package zz.itheima.arrays;public class BubbleSort { //冒泡排序 public static void main(String[] args) { int score[] = {67, 69, 75, 87, 89, 90, 99, 100}; for (int i = 0; i < score.length -1; i++){ //最多做n-1趟排序 for(int j = 0 ;j < score.length - i - 1; j++){ //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的) if(score[j] < score[j + 1]){ //把小的值交换到后面 int temp = score[j]; score[j] = score[j + 1]; score[j + 1] = temp; } } System.out.print("第" + (i + 1) + "次排序结果:"); for(int a = 0; a < score.length; a++){ System.out.print(score[a] + "\t"); } System.out.println(""); } System.out.print("最终排序结果:"); for(int a = 0; a < score.length; a++){ System.out.print(score[a] + "\t"); } }}运行结果:第1次排序结果:69 75 87 89 90 99 100 67 第2次排序结果:75 87 89 90 99 100 69 67 第3次排序结果:87 89 90 99 100 75 69 67 第4次排序结果:89 90 99 100 87 75 69 67 第5次排序结果:90 99 100 89 87 75 69 67 第6次排序结果:99 100 90 89 87 75 69 67 第7次排序结果:100 99 90 89 87 75 69 67 最终排序结果:100 99 90 89 87 75 69 67选择排序:package zz.itheima.arrays;public class SelectSort { /** * 选择排序 * @param args */ public static void main(String[] args) { int[] arr={3,5,1,7,6}; //从小到大 for(int j=0;j<arr.length-1;j++) { for (int i = j+1; i < arr.length; i++) { //第1轮 arr[0] arr[i] //第2轮 arr[1] arr[i] if(arr[j]>arr[i]) { int temp=arr[j]; arr[j]=arr[i]; arr[i]=temp; } } } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }}运行结果:13567顺序查找:package zz.itheima.arrays;public class OrderSearch { /** * 顺序查找 * @param args */ public static void main(String[] args) { int[] arr={3,5,1,7,6}; //顺序查找 找7 boolean flag=false; for (int i = 0; i < arr.length; i++) { if(arr[i]==7) { System.out.println("存在"); flag=true; break; } } if(flag==false) System.out.println("不存在"); }}运行结果:存在二分折半查找:package zz.itheima.arrays;public class BinarySearch { /** * 二分折半查找 * @param args */ public static void main(String[] args) { int[] arr={1,2,3,4,5,6,7,8,9}; //必须有序 int left=0; int right=arr.length-1; while (left<=right) { //找mid //1.mid==目标 找到了 //2.mid<目标 (缩小包围圈 left right) //3.mid>目标(缩小包围圈 left right) int mid=(left+right)/2; if(arr[mid]==8) { System.out.println("存在"); break; } if(arr[mid]<10) { left=mid+1; } if(arr[mid]>10) { right=mid-1; } } if(left>right) System.out.println("不存在"); }}运行结果:存在测试程序运行时间package zz.itheima.arrays;public class TestSystem { //测试程序执行了多长时间 public static void main(String[] args) { int[] arr={3,5,1,7,6,9,10,67,34,55,99}; long begin=System.currentTimeMillis(); //从小到大 for(int j=0;j<arr.length-1;j++) { for (int i = 0; i < arr.length-1-j; i++) { if(arr[i]>arr[i+1]) { int temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=temp; } } } long end=System.currentTimeMillis(); System.out.println(end-begin); }}数字格式化:package zz.itheima.arrays;import java.text.NumberFormat;public class TestNumberFormat { public static void main(String[] args) { double a=10.98; System.out.println(a*1.1); NumberFormat nf=NumberFormat.getInstance(); nf.setMaximumFractionDigits(1);//设置某个数的小数部分中所允许的最大数字位数 System.out.println(nf.format(a*1.1)); }}运行结果:12.07800000000000112.1日期格式化:package zz.itheima.arrays;import java.text.DateFormat;import java.util.Date;import java.util.Scanner;public class TestDateFormat { public static void main(String[] args) throws Exception { //public static final DateFormat getDateInstance(),获取日期格式器,该格式器具有默认语言环境的默认格式化风格。 Date now=new Date(); System.out.println(now); DateFormat df1=DateFormat.getDateInstance(); String s=df1.format(now); System.out.println(s);// public static final DateFormat getDateInstance(int style),获取日期格式器,该格式器具有默认语言环境的指定格式化风格。 DateFormat df2=DateFormat.getDateInstance(DateFormat.SHORT); s=df2.format(now); System.out.println(s);//// public static final DateFormat getDateTimeInstance(),获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。 DateFormat df3=DateFormat.getDateTimeInstance(); s=df3.format(now); System.out.println(s);// public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle),获取日期/时间格式器, // 该格式器具有默认语言环境的指定日期和时间格式化风格。 DateFormat df4=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.SHORT); s=df4.format(now); System.out.println(s);// public static final DateFormat getTimeInstance(),获取时间格式器,该格式器具有默认语言环境的默认格式化风格。//// public static final DateFormat getTimeInstance(int style),获取时间格式器,该格式器具有默认语言环境的指定格式化风格。//// public final String format(Date date)将一个 Date对象格式化为日期/时间字符串。// public Date parse(String source),将字符串解析为Date对象。字符串中日期时间格式必须跟格式化器的风格一致 Scanner sc=new Scanner(System.in); System.out.println("请输入你的生日:"); String birString=sc.nextLine(); DateFormat df5=DateFormat.getDateInstance(); Date birDate=df5.parse(birString); System.out.println(birDate); }}运行结果:Thu Nov 26 17:03:42 CST 20152015-11-2615-11-262015-11-26 17:03:422015年11月26日 星期四 下午5:03请输入你的生日:时间测试:package zz.itheima.arrays;import java.text.DateFormat;import java.util.Date;public class TestDate { public static void main(String[] args) { Date now=new Date(); System.out.println(now); System.out.println(now.getTime()); System.out.println(DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.SHORT).format(now)); }}运行时间:Thu Nov 26 17:04:40 CST 201514485286807492015年11月26日 星期四 下午5:04测试日历:package zz.itheima.arrays;import java.util.Calendar;import java.util.Date;public class TestCalender { //日历类测试 public static void main(String[] args) {// public static Calendar getInstance(),使用默认时区和语言环境获得一个日历对象(Calendar类是抽象类) Calendar c=Calendar.getInstance(); System.out.println(c);// public int get(int field)返回日历对象中给定字段的值 System.out.println(c.get(Calendar.HOUR));// public void set(int field, int value),设置日历对象中的给定字段的值 c.set(Calendar.YEAR,2015);// public final Date getTime(),返回日历中的日期时间对象 Date d=c.getTime(); System.out.println(d);// public final void setTime(Date date),设置日历中的日期时间对象 }}运行结果:java.util.GregorianCalendar[time=1448528724370,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2015,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=4,DAY_OF_MONTH=26,DAY_OF_YEAR=330,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=5,SECOND=24,MILLISECOND=370,ZONE_OFFSET=28800000,DST_OFFSET=0]5Thu Nov 26 17:05:24 CST 2015数组类进行测试:package zz.itheima.arrays;import java.util.Arrays;public class TestArrays { /** * 对数组类进行测试 * @param args */ public static void main(String[] args) {// public static void sort(xxx[] a) ,对数组a进行升序排序 int[] arr={4,6,1,8,3,9}; Arrays.sort(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println();// public static int binarySearch(xxx[] a , xxx key),通过二分(折半)查找法搜索数组a中的key int num=0; int result=Arrays.binarySearch(arr, num); System.out.println(result);// public static xxx[] copyOf(xxx[] a , int newLength),通过复制数组a的newLength长度的数据到新数组 int[] temp=Arrays.copyOf(arr, 3); for (int i = 0; i < temp.length; i++) { System.out.print(temp[i]+" "); } System.out.println();// public static xxx[] copyOfRange(xxx[] a , int from , int to),通过复制数组a的指定范围的数据到新数组 temp=Arrays.copyOfRange(arr, 2, 4); for (int i = 0; i < temp.length; i++) { System.out.print(temp[i]+" "); } System.out.println();// public static boolean equals(xxx[] a1 , xxx[] a2),比较a1和a2两个数组是否一样 int[] arr2={4,6,1,8,3,9}; System.out.println(Arrays.equals(arr, arr2));//顺序不一样也不是同一个数组 }}运行结果:1 3 4 6 8 9 -11 3 4 4 6 false数组存放对象:package zz.itheima.arrays;public class TestArray { public static void main(String[] args) { //数组可以是自定义类型,数组存放了对象 int[] arr={4,2,8,1,7}; Book[] arrBooks=new Book[3]; arrBooks[0]=new Book("adf",100.10); arrBooks[1]=new Book("aasddf",10560.10); arrBooks[2]=new Book("aasdfdf",10560.10); //数组位置交换 int temp=arr[1]; arr[1]=arr[3]; arr[3]=temp; }}两个日期时间差:package zz.itheima.arrays;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Demo2 { /** * 两个日期时间差 * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d1=sdf.parse("2015-07-13 10:10:10"); Date d2=sdf.parse("2015-11-26 00:00:00"); System.out.println(daysBetween(d1,d2)); System.out.println(daysBetween("2015-07-13 10:10:10","2015-11-26 00:00:00")); } /** * 计算两个日期之间相差的天数 * @param smdate 较小的时间 * @param bdate 较大的时间 * @return 相差天数 * @throws ParseException */ public static int daysBetween(Date smdate,Date bdate) throws ParseException { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); smdate=sdf.parse(sdf.format(smdate)); bdate=sdf.parse(sdf.format(bdate)); Calendar cal = Calendar.getInstance(); cal.setTime(smdate); long time1 = cal.getTimeInMillis(); cal.setTime(bdate); long time2 = cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } /** *字符串的日期格式的计算 */ public static int daysBetween(String smdate,String bdate) throws ParseException{ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(smdate)); long time1 = cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate)); long time2 = cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } } 运行结果:136136固定格式日历:package zz.itheima.arrays;import java.util.Calendar;public class Demo1 { public static void main(String[] args) { // 练习:在控制台输出当前时间,格式为“2014-1-29 14:24:55” Calendar c = Calendar.getInstance();//得到日历对象 //分别得到年月日和时分秒就可以了 int year=c.get(Calendar.YEAR); int month=c.get(Calendar.MONTH)+1; int day=c.get(Calendar.DAY_OF_MONTH); int hour=c.get(Calendar.HOUR); int minute=c.get(Calendar.MINUTE); int sec=c.get(Calendar.SECOND); System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minute+":"+sec); }}运行结果:2015-11-26 5:9:7Book类:package zz.itheima.arrays;public class Book { private String name; private double price; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public Book(String name, double price) { super(); this.name = name; this.price = price; } public Book() { super(); }}
0 0
- JavaSE(07)(数组高级操作及日期格式)
- JavaSE----API之常用类(数组的高级操作、正则表达式)
- js 数组操作(高级)
- JAVASE之日期操作
- c#日期格式操作(贴吧转)
- [javase学习笔记]-5.4 数组常用操作(1)
- [javase学习笔记]-5.5 数组常用操作(2)
- 数据库日期操作(存取特定格式日期)
- JavaSE----基础语法(数组)
- JavaSe基础(4)---数组
- javase数组(最值)
- QT操作Excel封装类(包含高级功能:合并单元格,文本及单元格格式设定等)
- JavaSe基础(20)-- 时间日期类
- js中字符串转换日期格式,日期转换字符串,操作日期(如:加一天)
- AAC(高级音频编码)帧格式及编码介绍
- Oracle日期类操作(格式 加减乘 取毫秒)
- Oracle日期类操作(格式 加减乘 取毫秒)
- 日期格式(转)
- CityEngine CGA语法之属性设置函数 set
- 百度地图(一)
- 秒杀多线程第七篇---经典线程同步 互斥量Mutex
- 天嵌E9卡片i.mx6q-Linux12.04搭建nfs环境以及从nfs启动开发板
- 完美解决php验证码session不同步的问题
- JavaSE(07)(数组高级操作及日期格式)
- MVC Html.AntiForgeryToken() 防止CSRF攻击
- glibc中字符串处理的几个函数实现分析
- Java——与 或 非 异或
- 设计模式初体验——工厂模式
- ubuntu——apt源镜像
- ASP.NET根据URL生成网页缩略图示例程序(C#语言)
- linux下查看进程内存使用情况
- web进门第13天