老图搬砖day03.1——java.util

8月12日

1)java中常用工具类

2)CSS和HTML

3.1 java.util 包中的常用工具类

Ctrl+Shift+o可以快速import对应的包

1.Date类

java.util.Date

类Date表示特定的瞬间,精确到毫秒
现在主要用calender
Calender 日历类 【抽象类】
抽象类可以为子类提供公共模板,子类进一步进行实现

import java.util.Date;
//import java.util.*;

public class TestDate{
	public static void main(String[] args){
		Date d = new Date();
		System.out.println(d);
		System.out.println(d.getTime());//距离1970.1.1 0:0:0 以来至当前的毫秒数
	}
}

在这里插入图片描述

package com.time;
import java.util.*;

public class TestCalender {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	//	Calendar calendar = new Calendar(); //抽象类不能直接被实例化,需要用它的子类
		Calendar calendar = new GregorianCalendar();
		Calendar cal = Calendar.getInstance();
		
		int year = cal.get(Calendar.YEAR);
		int month = cal.get(Calendar.MONTH);
		int day = cal.get(Calendar.DAY_OF_MONTH);
		int hour = cal.get(Calendar.HOUR_OF_DAY);
		int minute = cal.get(Calendar.MINUTE);
		int second = cal.get(Calendar.SECOND);
		
		String strDate = year+"年"+month+"月"+day+"日"+hour+":"+minute+":"+second;
		System.out.println("现在的时间是:"+strDate);
	}

}

这样输出日期过于繁琐,我们可以使用SimpleDateFormat

package com.time;
import java.text.*;
import java.util.*;

public class SimpleDate {
	public static void main(String[] args) {
		//简单日期格式化工具类 Date——〉String  String ——〉Date
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss E");
		
		//当前系统日期时间瞬间
		Date d = new Date();
		
		String strDate = sdf.format(d);
		
		System.out.println("现在的时间是:"+strDate);
		
		String s = "2019年7月26日 14:32:45 星期五";
		//try catch使用
		try {
			Date d2= sdf.parse(s);
			System.out.println(d2);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("日期非法!");
		}
		System.out.println("程序可以正常结束");
	}
}

在这里插入图片描述

2.Random随机数生成器

import java.util.Random;


public class TestDate {
	public static void main(String[] args) {
			Random rand = new Random();
			int num = 10+rand.nextInt(11); //0~10   10~20
			
			System.out.println(num);
	}
}

3.集合框架类

package com.demo03;
import java.util.*;

public class TestArrayList {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String[] strs = new String[5];
		
		strs = new String[20]; //重新定义数组
		//动态数组——数组列表 
		//JDK5.0之后,将集合框架接口与类进行泛型化<泛型类>
		ArrayList<String> a1 = new ArrayList<String>();
	//	ArrayList a1 = new ArrayList();
		a1.add("23423");
		a1.add("32434");
		a1.add("33545");
	//	a1.add(3.5);  //会出现报错
	//	a1.add(3453); //会出现报错
		
		System.out.println(a1.get(1));
		System.out.println("————————————————————————");
		a1.remove(1);
		
		//迭代集合方式1:
		for(int i=0;i<a1.size();i++){
			System.out.println(a1.get(i));
		}
		System.out.println("————————————————————————");
		//迭代方法2  迭代子进行操作:
		Iterator<String> iter = a1.iterator();
		while (iter.hasNext()){
			String a = iter.next();
			System.out.println(a);
		}
			System.out.println("————————————————————————");
		//迭代方法3   forEach循环:
			for(String s : a1){
				System.out.println(s);			
		}
	}
}


size() ArrayList的长度
add(),add(e),向集合的末尾追加元素,add(index,e),向index位置插入元素 
remove()
iterator() 获取指向当前集合对象的迭加器
get(int index)获取指定索引处的元素
//更多内容查询手册

java.util.Collection 集合层次中的根接口

|-List接口(允许有重复的接口)

  1. ArrayList 数组列表——>动态数组 [插入,移除元素时,效率低]
  2. LinkedList 链接列表——>链表[数据结果] [插入,移除元素时,效率高,检索元素时效率高]
  3. Vector 向量列表,多线程

|-Set接口(不允许重复接口)

  1. HashSet 无序无重复
  2. TreeSet 有序无重复
package com.demo2;

import java.util.ArrayList;
import java.util.HashSet;

public class TestA {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ArrayList<String>  a1 = new ArrayList<String>();
		HashSet<String> a2 = new HashSet<String>();
		
		a1.add("111");
		a1.add("345");
		a1.add("111");
		a1.add("435");
		
		a2.add("111");
		a2.add("345");
		a2.add("111");
		a2.add("435");
		System.out.println("元素的个数:"+a1.size());
		System.out.println(a1);
		System.out.println("元素的个数:"+a2.size());
		System.out.println(a2);

	}

}

在这里插入图片描述

java.util.map接口

当我们需要存在键-值 成对的元素进行存储,就需要使用map

  1. HashMap 哈希图 [键值乱序随机存储]
  2. TreeMap 树图 [键值排序存储]
package com.demo2;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;


public class TestMap {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Map<String,Integer> map = new HashMap<String,Integer>();
		
		map.put("a01",111);
		map.put("b02", 222);
		map.put("z03", 333);
		
		System.out.println(map);
		
		//获取map中的所有值的集合
	//	Collection<Integer> values = map.values();
		//map的迭代输出实现 
		//需要先获取键集合,
		Set<String> keys = map.keySet();
		for(String key : keys){
			Integer value = map.get(key);
			System.out.println("key:"+key+"——————〉value"+value);
}
		
		
	}

}

在这里插入图片描述
对ArrayList进行排序

	public static void main(String[] args) {
		ArrayList<String>  a1 = new ArrayList<String>();
	//	HashSet<String> a2 = new HashSet<String>();
		
		a1.add("111");
		a1.add("345");
		a1.add("111");
		a1.add("435");
		//对集合进行排序;
		Collections.sort(a1);
		System.out.println("元素的个数:"+a1.size());
		System.out.println(a1);

在这里插入图片描述
复杂的集合的元素的排序(脑壳痛直接复制老师的代码了)

java.util.Arrays.sort(数组名);
java.util.Collections.sort(集合对象名);
package com.kotei.oop4;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Student implements Comparable<Student>{
	int sid;
	String sname;
	int age;
	
	public Student() {
	}

	public Student(int sid, String sname, int age) {
		super();
		this.sid = sid;
		this.sname = sname;
		this.age = age;
	}
	
	
	public String toString() {
		return this.sid+"\t"+this.sname+"\t"+this.age;
	}

	//定义排序的比较规则
	public int compareTo(Student s) {
		//先按姓名的升序,再年龄的降序
		if(this.sname.compareTo(s.sname)>0){
			return 1;
		}else if(this.sname.compareTo(s.sname)<0){
			return -1;
		}else{
			//按年龄排
			return -(this.age-s.age);
		}
		
	}
}


public class TestArrayList {
	public static void main(String[] args) {
		List<Student> stuList = new ArrayList<Student>();
	
		stuList.add(new Student(1,"zhangsan",20));
		stuList.add(new Student(2,"lisi",19));
		stuList.add(new Student(3,"wangwu",21));
		stuList.add(new Student(4,"wangwu",20));
		
		Collections.sort(stuList);
		
		for(int i=0 ; i<stuList.size() ; i++){
			System.out.println(stuList.get(i));
		}
		
	}
}

3.2 接口

abstract是抽象类
interface定义接口

区别:

抽象类的应用场合是部分实现,部分未实现,而接口则是完全未实现

package com.demo2;

//开关接口类型——规范,标准,接口中的方法只能是public abstract
interface ISwitch{
	int i = 100; //public static final 默认三个属性, 常量不能被修改
	//一般不在接口中定义字段
	void turnOn();  //方法声明 隐含abstract
	void turnOff();
}
//类A想要实现ISwitch,必须实现ISwitch中的所有方法
 class A implements ISwitch{
	public void turnOn(){
		System.out.println("实现开关的——开");
	}
	public void turnOff(){
		System.out.println("关");
	}
}

public class TestInt {
	public static void main(String[] args){
	//	ISwitch objI = new ISwitch;   接口和抽象类一样,都不可以直接被实例化
		ISwitch objI = new A();    //A继承了ISwitch的方法
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值