【友情链接】———–—>Java中的各种集合大汇总,学习整理
【友情链接】————–> Collection集合
【友情链接】————–> ArrayList集合及其常用功能
【友情链接】————–> ArrayList应用<两大案例的数据分组聚合>
【友情链接】———–—> Iterator迭代器
【友情链接】———–—>List集合 & LinkedList集合 & Vector集合
【友情链接】———–—>set集合 & HashSet集合 & 哈希值& LinkedHashSet集合 &TreeSet集合&可变参数
【友情链接】———–—>Map集合 & HashMap集合 & LinkedHashMap集合&HashTable集合
【友情链接】———–—>Collections类集合工具类
了解API
1. 概述: API是应用程序编程接口
2. Java API: 指的就是JDK中提供的各种功能的Java类 这些类的底层的实现进行了封装,我们不必关心这些类是如何实现的,只要知道这些类如何使用即可。
本节目录:
一、Scanner类
二、Random类
三、匿名对象
四、ArrayList集合
ArrayList<>集合常用方法
1. add(E e)添加元素
2. get(int index) 获取元素
3. remove(int index)删除元素
4. size()获取集合的尺寸长度
五、String类
一、String概述
二、String类常用方法
1. 字符串反转
2. split(String regex)字符串切分
3. replace(oldstring,newstring)字符串替换
4. endsWith(String suffix)判断后缀
5. equals()字符串比较
6. length()获取字符串长度
7.concat(String str)字符串拼接
8.indexof(String str)字符串索引查找
9.charAt(int index) 获取单个字符
10.substring(int index) 字符串截取
11.toCharArray() 字符串拆分为数组
12.getBytes()获得字符串底层字节数组
一、Scanner类
Scanner类功能:实现从键盘输入数据
(1)导包: import 包路径.类名;
import java.util.Scanner;
(2)创建: 类名称 对象名 = new 类名称();
Scanner scanner = new Scanner(System.in);
(3)使用: 对象名.成员方法名();
int a = scaner.nextInt();//接收整型
String s = scanner.next();//接收字符串
注意:
- 从键盘上输入的字符,都是String类型的。
- 仅有java.lang包下的内容不需要导包,其它包都需要import导包
二、Random类
Random类为随机数类
(1)导包;
import java.util,Random;
(2)创建:
Random random = new Random();
(3)使用:
int num1 = random.nextInt(10);//产生0--9的随机整数
int num2 = random.nextInt(10)+1;//产生1--10的随机整数
三、匿名对象
前提:已经有创建好一个Person类
使用:
new : Person().name = "张三"
注意:
(1)匿名对象仅能使用一次;
(2)匿名对象作方法的参数、返回值
四、ArrayList集合
(1)导包: import java.util.ArrayList;
(2)创建: ArrayList<E> 集合名 = new ArrayList<>;
//创建一个名称为list,内部装的是String类型数据的ArrayList集合
ArrayList<String> list = new ArrayList<>;
注意:
1️⃣ 对于ArrayList集合来说,有< E> 表示泛型;
泛型:指装在集合中的所有元素的类型都是统一的。
泛型只能是引用类型,不能是基本类型2️⃣ Array(数组)长度不可以发生改变,但是ArrayList(集合)的长度是可以随意改变的
3️⃣ 从JDK1.7+开始,右侧的<>内部可以不写内容,但是<>要写
ArrayList构造方法:
ArrayList() //构造一个初始容量为十的空列表。
//构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。
ArrayList(Collection<? extends E> c)
//构造具有指定初始容量的空列表。
ArrayList(int initialCapacity)
ArrayList<>集合常用方法
1. add()添加元素
//1.向集合中添加元素,参数类型和泛型一致,返回值代表添加是否成功
// public boolean add(E e);
/*对于ArrayList<>集合来说,add()添加一定是成功的,
所以返回值可用可不用,但对于其他的来说,就不一定了。*/
//2.在指定位置插入元素,index最大下标为集合长度加1
//public void add(int index, E element)
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//1.添加元素
boolean a=list.add("张三");
list.add("李四");
list.add("王五");
list.add("李四");
list.add("奥迪");
list.add("李四");
System.out.println(list);
System.out.println("添加是否成功返回值:\t"+a);
//2.指定位置插入元素
System.out.println("***********指定位置添加元素*********");
list.add(2,"泰罗");
list.add(1,"迪迦");
System.out.println(list);
}
2. get(int index) 获取元素
//从集合中获取元素,参数是索引编号,返回值就是对应位置的元素
// public E get(int index);
System.out.println("***********获取指定位置元素*********");
String get1 = list.get(1);
System.out.println(get1);
3. remove(int index)删除元素
//1. 从集合中删除元素,参数是索引编号,返回值就是被删除元素
// public E remove(int index);删除该列表中指定位置的元素,
//2.public boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
//1.删除元素
System.out.println("***********删除指定位置(下标)元素*********");
String remove2 = list.remove(2);
System.out.println("指定的位置的元素:\t"+remove2);
System.out.println("删除后\t"+list);
//2.删除指定元素,第一个出现的
System.out.println("*********删除指定元素***********");
System.out.println("删除前:\t"+list);
list.remove("李四");
System.out.println("删除后:\t"+list);
4. size()获取集合的尺寸长度
//获取集合的尺寸长度,返回值是集合中包含的元素个数
// public int size();
//获取集合长度
System.out.println("*********获取集合长度***********");
int size = list.size();
System.out.println("集合长度:\t"+size);
注意:
从JDK1.5+开始,支持自动装箱,自动拆箱
自动装箱 基本类型———---->包装类型
自动拆箱 包装类型————->基本类型
五、String类
对于基本类型来说 “ == ”是进行数值的比较
对于引用类型来说 “ == ”是进行地址值的比较
一、String概述
String在java.lang包下,所以使用的时候不需要导包
(1)、 String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。 也就是说,Java程序中所有的双引号字符串都是String类的对象
(2)、字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。
String类的构造方法
方法名 | 方法说明 |
---|---|
public String() | 创建一个空白的字符串对象,不含有任何内容 |
public String(char[] c) | 根据字符数组的内容,创建字符串对象 |
public String(byte[] b) | 根据字节数组的内容,创建字符串对象 |
String s=“abc” | 直接赋值的方式创建对象 |
注意:
- String是特殊的引用类型
- String不可变,他们的值在创建后不能被更改
- String的值不可变,但是可以被共享
- String相当于字符数组(char[]),但是底层原理是字节数组(byte[])
二、String类常用方法
1. 字符串反转
public static void main(String[] args) {
String str = "znxkcjashkjdb132456";
System.out.println(str);
//for循环逆序遍历str
System.out.println("字符串反转:");
for (int i = str.length()-1; i >=0 ; i--) {
System.out.print(str.charAt(i));
}
}
2. split(String regex) 字符串的切分
//按照参数的规则,将字符串切分成若干部分
//public String[] split(String regex)
public static void main(String[] args) {
String str1="枯藤老树昏鸦,小桥流水人家,古道西风瘦马,夕阳西下,断肠人在天涯";
String str2="枯藤老树昏鸦|小桥流水人家|古道西风瘦马|夕阳西下|断肠人在天涯";
String str3="枯藤老树昏鸦|小桥流水人家,古道西风瘦马|夕阳西下,断肠人在天涯";
System.out.println(str1);
//以中文逗号为分隔符,切分
String[] split1 = str1.split(",");
System.out.println(str2);
//以|为分隔符,
//切分;注意转义字符要用\\而\则会理解为一个字符
String[] split2 = str2.split("\\|");
System.out.println(str3);
//以|和中文逗号为分隔符,
//切分;注意转义字符要用\\而\则会理解为一个字符;第四个|为关键字表‘或’
String[] split3 = str3.split("\\||\\,");
for (int i = 0; i <split3.length ; i++) {
System.out.println(split3[i]);
}
}
3. replace(oldstring,newstring) 字符串替换
//将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串
//punlic String replace(charSequence oldString,charSequence newString)
public static void main(String[] args) {
String str = "znxkcjashkjdb132456";
System.out.println("原字符串:\t"+str);
String strreplace = str.replace("znxkc", "abcde");
System.out.println("字符串替换后:\t"+strreplace);
}
4. endsWith(String suffix) 判断后缀
// endsWith(String suffix) :测试此字符串是否以指定的后缀结尾。
public static void main(String[] args) {
String[] str1={"abc.txt","def.txt.java","123.java","hello.java"};
System.out.println("原字符串数组:\t");
for (int i = 0; i <str1.length; i++) {
System.out.print(str1[i]+"\t\t");
}
System.out.println("\n");
for (int i = 0; i < str1.length; i++) {
String[] split = str1[i].split("\\.");
System.out.println("******************");
//5. endsWith(String suffix) :测试此字符串是否以指定的后缀结尾。
boolean b = str1[i].endsWith(".java");
System.out.println(str1[i]+"\t是否以java为后缀:\t"+b);
}
}
5. equals(String str) 字符串比较
public static void main(String[] args) {
String str1="abcdefg";
String str2="abcdgf";
System.out.println(str1.equals(str2));//输出false
}
//注意:
//1.equals()方法具有对称性,区分大小写
//2.若是比较一个常量一个变量,推荐把常量放在前面否则可能会报错
6. length() 获取字符串长度
public static void main(String[] args) {
String str1="abcdefg";
String str2="abcdgf";
//length() 获取字符串长度
int str1length = str1.length();
int str2length = str2.length();
System.out.println(str1length);
System.out.println(str2length);
}
7.concat(String str) 字符串拼接
public static void main(String[] args) {
String str1="abcdefg";
String str2="abcdgf";
//concat(String str) 拼接字符串,并返回一个新的字符串
String strconcat = str1.concat(str2);
System.out.println(strconcat);
System.out.println("\n");
}
8.indexof(String str) 字符串索引查找
public static void main(String[] args) {
String str1="abcdefg";
String str2="abcdgf";
//concat(String str) 拼接字符串,并返回一个新的字符串
String strconcat = str1.concat(str2);
System.out.println(strconcat);
System.out.println("\n");
//indexof(String str)
//查找字符串在本字符串中首次出现的索引位置,若没有则返回-1
int gab = strconcat.indexOf("gab");
System.out.println(gab);
System.out.println("\n");
}
除此之外还有其他的查找索引的方法,参数不同,所实现的功能不同,如下图
9.charAt(int index) 获取单个字符
public static void main(String[] args) {
String str1="abcdefg";
String str2="abcdgf";
//concat(String str) 拼接字符串,并返回一个新的字符串
String strconcat = str1.concat(str2);
System.out.println(strconcat);
System.out.println("\n");
//charAt(int index) 获取指定位置的单个字符
char charAt = strconcat.charAt(7);
System.out.println(charAt);
System.out.println("\n");
}
10.substring(int index) 字符串截取
public static void main(String[] args) {
String str1="abcdefg";
String str2="abcdgf";
//concat(String str) 拼接字符串,并返回一个新的字符串
String strconcat = str1.concat(str2);
System.out.println(strconcat);
System.out.println("\n");
//substring(int index)截取从参数位置到字符串末尾,返回新字符串
//substring(int begin,int end)截取从begin到end之间的字符串,包含左边不含右边
String substring = str1.substring(2);
String substring1 = strconcat.substring(2, 5);
System.out.println(substring);
System.out.println(substring1);
}
11.toCharArray() 字符串拆分为数组
public static void main(String[] args) {
String str1="abcdefg";
//toCharArray() 将当前字符串拆分为字符数组作为返回值
char[] chars = str1.toCharArray();
for (int i = 0; i <chars.length ; i++) {
System.out.print(chars[i]+"\t");
}
}
12.getBytes()获得字符串底层字节数组
public static void main(String[] args) {
String str2="abcdgf";
//getBytes() 获得当前字符串底层的字节数组
byte[] bytes = str2.getBytes();
for (int i = 0; i <bytes.length ; i++) {
System.out.print(bytes[i]+"\t");
}
}
六、static静态代码块
格式:
public class 类名称{
static{
//静态代码块内容
}
}
注意:
1.特点: 当第一次用到本类时,静态代码块执行唯一的一次
2.静态内容总是优先于非静态,所以静态代码块比构造方法先执行
3.典型用例:用来一次性的对成员变量进行赋值
七、Math类
java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,用于完成与数学运算相关的操作
//求绝对值
public static double abs(double num);
//向上取整
public static double ceil(double num);
//向下取整
public static double floor(double num);
//四舍五入
public static double round(double num);
public static void main(String[] args) {
double a= abs(-36.5);
double b= ceil(35.2);
double c= floor(35.9);
double e= round(36.4);
double f= round(36.5);
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(e);
System.out.println(f);
}