文章目录
java 基础类应用
Random类:随机数类
语法:
Random rd = new Random(); 导包:java.util.*
int num = rd.nextInt(10); //产生的随机数范围是:0-9,没有10
其它类型:
rd.nextFloat();
rd.nextDouble();
根据范围产生不重复的随机数:
package com.zuxia;
import java.util.*;
public class Demo1 {
public static void main(String[] args) {
Random r1 = new Random();
Scanner sc = new Scanner(System.in);
int[] num = new int[5];
System.out.println("请输入产生随机数的下限:");
int min = sc.nextInt();
System.out.println("请输入产生随机数的上限:");
int max = sc.nextInt();
System.out.println("产生的数组元素如下:");
for (int i = 0; i < num.length; i++) {
num[i] = r1.nextInt(max - min+1)+min;
for (int j = 0; j < i; j++) {
//判断是否重复
if(num[i] == num[j] ){
i--;
break;
}
}
//查看执行流程
// System.out.println(Arrays.toString(num));
}
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
}
**Date类:**日期类
语法:
Date d = new Date();
d.toLocaleString(); -->获取本地时间
DateFormat类与SimpleDateFormat:
语法:
SimpleDateFormat: df = new SimpleDateFormat("具体的格式");
例如:
yyyy-MM-dd
yyyy-MM-dd hh:mm:ss EEE //yyyy年 MM月 dd日 hh时 mm分 ss秒 EEE星期几
df.format(d); //d是创建的日期对象
Calendar类:日历类
语法:
//获取日历对象
Calendar cd = Calendar.getInstance();
cd.方法名(参数);
cd.get(参数); ---->获取
cd.set(参数): ---->设置
包装类:
每个基本数据类型都对应一个包装类(8种基本数据类型)
byte Bytr
short Short
int * Integer
long Iong
char * Character
float Float
double Double
boolean Boolean
作用:
将String转为基本数据类型
拆箱(将引用数据类型 转为 基本数据类型)
案例:
String str = "123.88";
将字符串转为int:
int n1 = Integer.parseInt(str); parseInt()方法返回值为:int
将字符串转为duble:
double n2 = Double.parseDouble(str); parseDouble方法返回值为:double
转为其它类型:
目标类型 变量名 = 包装类.parsexxx(字符串);
Object类:
注意:
==与equals
:判断的是都是地址
原因:
equals的源码中判断用的也是==
String类:字符串
创建字符串:
语法1:
String 变量名 = “值”;
特点:
维护一个String的共享池
语法2:
String 对象名 = new String(“值”);
特点:
创建几个对象,有开辟几块空间
对比两种语句:
语法1更节约内存空间
==
:判断的是地址
equals
:判断的是值(重写Object类)
StringBuffer:
特点:
主要处理可变的字符串
语法:
StringBuffer sb = new StringBuffer();
sb.方法名();
对比String与StringBuffer:
String类:
主要处理不变的字符串
StringBuffer类:
主要处理可变的字符串
常用的方法:
toUpperCase():转为大写
toLowerCase():转为小写
返回值:String
indexOf():查找字符或字符串第一次出现的位置
lastIndexOf():查找字符或字串最后一次出现的位置
返回值:int(从0开始的索引/位置,没有找到返回-1)
subString():截取字符串
用法1:
subStrnig(int beginindex):从开始位置截取后面所有的字符串
subString(int beginindex,int endindex):截取范围内的,包含beginindex,不包含endindex
返回值:
String(截取后的字符串)
split(“分割符”):将字符串分割成为一个数组
返回值:
String[]
注意:
| * .等特殊符号,分割时前面加:\\ 如根据.分割:\\.
eg:转换为帕斯卡命名法
System.out.println("请输入一个字符串:");
String str = sc.nextLine();
String [] str1 = str.split(" ");//通过空格拆分到一个数组中
String str2 = "";
for (int i = 0; i < str1.length; i++) {
str2 += str1[i].substring(0,1).toUpperCase()+str1[i].substring(1).toLowerCase();
}
System.out.println(str2);
结果如下:
请输入一个字符串:hello world!
HelloWorld!
System类:
currentTimeMillis():获取当前的毫秒数,1973年开始
集合框架
ArrayList类
:有序可重复,擅长随机访问
特点:
长度动态可变
可存放任意类型的数据(如果往集合中存放了不同类型的数据,有些操作可能会发生异常)
有序(放进去的顺序就是输出的顺序)
可重复(允许存放重复的数据)
创建语法:
ArrayList list = new ArrayList(); //默认情况下长度为10
常用方法:
size():获取集合的元素
get(int index):根据下标获取元素
set(int index,object obj):将index位置上的元素替换为obj
remove(int index):根据下标删除
remove(object obj):根据元素删除
removeAll(集合):删除集合
add(object obj):添加元素到末尾
add(int index,object obj):将obj插入到index的位置上
contains(object obj):查找某个元素是否存在,返回boolean
…
集合排序:
Collections.sort(list); -->list是集合名称 Collections类中提供一些算法 方法是升序
Collections.reverse(list) -->反转(升序之后再反转就是降序)
…
LinkedList:类
特点:
链表方式存储
长度动态可变
可存放任意类型的数据
常用方法:
与ArrayList类似,添加对首尾操作的方法
如:
addFirst(object obj):
addLast(object obj):
removeFirst(object obj):
removeLast(object obj):
…
集合迭代输出
:
方式1:下标访问
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
方式2:增强for(几乎与迭代器差不多的效果,因为增强for内部也用到了迭代器)
for(Object o : list){
System.out.println(o);
}
方式3:迭代器(LinkedList特别推荐使用迭代器)
Iterator iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
Set子接口:
两个实现类:
HashSet: 哈希表
特点:
无序(按照哈希码)
不能重复(add()方法先调用hascode判断该哈希码是否已经存在,不存在才会添加)
创建语法:
HashSet hs = new HashSet();
hs.方法名(...);
TreeSet :二叉树的方式存放
特点:
排序
不能重复
创建语法:
TreeSet ts = new TreeSet();
ts.方法名(....);
输出:迭代器
ArrayList和LinkedList如何迭代的,这里就怎么迭代
Map接口:
特点:
按键值对方式存放
注意:
键值对存放的集合中,一般都是通过键操作值
两个实现类:
HashMap:
特点:
无序(哈希码)
语法:
HashMap map = new HashMap();
map.方法名();
TreeMap:
特点:
排序
语法:
TreeMap map = new TreeMap();
map.方法名();
迭代器:
Iterator iter = map.keySet().iterator(); -->通过keySet()方法才能获取迭代器
while(iter.hasNext()){
//键
String key = (String)iter.next(); -->键值对中,next获取的都是键
//通过键获取值
String value = (String)map.get(key); -->get()方法:是通过键获取值
System.out.println("键是:"+key+" 值是:"+value);
}