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
    评论
Java基础知识笔记通常会涵盖以下几个核心主题: 1. Java概述:包括Java的历史、平台无关性、JVM(Java Virtual Machine)的作用和Java的核心API(如java.lang包)。 2. 数据型和变量:基本数据型(如int, float, char等)、引用型(如String, Object),以及变量的声明、初始化和作用域。 3. 控制结构:条件语句(if-else, switch)、循环(for, while, do-while)、异常处理(try-catch-finally)。 4. 和对象:封装、继承和多态的概念,的定义、构造函数和析构函数,以及实例化对象和方法调用。 5. 面向对象编程:接口、抽象和它们的区别,以及设计模式的基本概念。 6. 数组和集合:数组的定义、操作,以及ArrayList、LinkedList、HashMap等常用集合框架的使用。 7. 输入输出流:文件I/O、标准输入输出流(System.in/out)的处理。 8. 方法和函数:静态方法、重载方法、递归等。 9. 异常处理:异常的抛出、捕获和处理机制。 10. IO流和网络编程:Socket编程、HTTP请求等。 创建一个Markdown格式的笔记,可能会包括标题、列表项、代码示例和注释。例如: ```markdown # Java基础笔记 ## 1. Java简介 - Java语言特点: 平台无关性、垃圾回收机制 - JVM: 负责执行Java字节码 ## 2. 数据型 - int, double, String等基本型 - ```java // 声明并初始化一个整型变量 int num = 10; ``` ## 3. 控制结构 - if-else: 条件判断 - ```java if (num > 0) { System.out.println("Positive"); } ``` ... ### 附录:常用库 - java.util: 集合框架 - java.io: I/O流处理 ``` FileInputStream fileIn = new FileInputStream("file.txt"); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值