java笔记三(基础类+集合框架)

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);
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值