各类调用函数及其用法总结(一)

StringBuffer常见的方法

1、append():追加连接
2、reverse():翻转字符串

public class TestStringBuffer1{
	public static void main(String[] args){
		//26个字母
		//String str = "abcdefgh....z";
		//String str = "";
		//for(char x = 'a';x <= 'z';x++){
		//	str += x;
		//}
		//System.out.println(str);
		StringBuffer buffer = new StringBuffer();
		for(char x = 'a';x <= 'z';x++){
			//buffer.append(x);
			//buffer.append(",");
			buffer.append(x).append(",");
		}
		System.out.println(buffer);
		buffer.reverse();
		System.out.println(buffer);
	}
}

Object类的核心方法

1、clone():"克隆"对象的方法(不常用)

public class TestClone2{
	public static void main(String[] args)throws Exception{
		Book b1 = new Book("西游记",1983);
		Book b2 = b1.clone();

		System.out.println(b1 == b2);
	}
}
//2:当前的类实现接口
class Book implements Cloneable{
	String name;
	int year;
	public Book(String name,int year){
		this.name = name;
		this.year = year;
	}
	//clone() -> 只能在Book类体里面使用
	//1:将继承得到的clone()权限改大
	@Override
	public Book clone()throws CloneNotSupportedException{
		Object obj = super.clone();
		return (Book)obj;
	}
}

2、toString():制定一个对象打印显示的内容。
每一个引用数据类型都有toString(),在toString()没有覆盖的时候和Object类型保持一致,在。
Object类中toString() -> 类型@XXXX,如果对Object类显示的效果不满意 可以覆盖toString()方法。

	@Override
	public String toString(){
		return name;
	}

3、equals():制定一个类型的比较规则,只要XXX一样就视为相等对象。
每一个引用数据类型都有equals()方法 在没有覆盖的时候比较地址,如果不想要比较地址。

@Override
	public boolean equals(Object obj){//a.equals(b)
		//只要两个学生的姓名一样视为相等对象

		Student x = this;//调用者
		Student y = (Student)obj;//参数对象

		//分别得到他们的姓名
		String n1 = x.name;//调用者的姓名
		String n2 = y.name;//参数对象的名字

		//比较
		return n1.equals(n2);

	}

4、hashCode():生成一个对象的散列特征码
注意:当此方法【equals】被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
x.equals(y) = true x.hashCode() == y.hashCode()

public class TestHashCode1{
	public static void main(String[] aargs){
		String x = new String("etoak");
		String y = new String("etoak");
		System.out.println(x.equals(y));
		System.out.println(x.hashCode());
		System.out.println(y.hashCode());

		Student a = new Student("张三");
		Student b = new Student("张三");
		System.out.println(a.equals(b));
		System.out.println(a.hashCode());
		System.out.println(b.hashCode());
	}
}
/**
							Object
							toString():打印对象 -》 类型@XXX
							equals():比较内容 -》 比较地址
							hashCode():得到哈希码值 -》 通过地址计算哈希码值

		String											Student
		toString():StringXXXX							toString():Student@XXX
		equals():比较对象地址							equals():比较地址
		hashCode():通过地址计算哈希码值					hashCode():地址生成哈希码值

		方法覆盖:										方法覆盖:
		toString():内容
		equals():内容									equals():name
		hashCode():通过内容
*/
class Student{//extends Object -> hashCode()
	String name;//

	public Student(String name){
		this.name = name;
	}
	@Override
	public boolean equals(Object obj){//obj = cat

		if(obj == null)return false;
		if(!(obj instanceof Student))return false;
		if(obj == this)return true;

		Student s1 = this;
		Student s2 = (Student)obj;

		String n1 = s1.name;
		String n2 = s2.name;

		return n1.equals(n2);
	}
	@Override
	public int hashCode(){
		return name.hashCode();
	}
}

ArrayList的核心方法

1、list.add(元素);
将指定的元素追加到此列表的末尾。
2、list.add(下标,元素);
Collections.addAll(集合,元素,元素…); 一次添加多个元素
在此列表中的指定位置插入指定的元素。
3、list.contains(元素)
如果此列表包含指定的元素,则返回 true 。
4、list.get(下标)
返回此列表中指定位置的元素。
5、list.indexOf(元素)
返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1.
6、list.lastIndexOf(元素)
返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1
7、list.isEmpty()
如果此列表不包含元素,则返回 true 。
8、list.set(下标,元素)
用指定的元素替换此列表中指定位置的元素。
9、size()
返回此列表中的元素数。 得到集合大小。
10、Object[] data = list.toArray()
将集合中的元素装进Object[] ;
11、remove(int 下标)
删除该列表中指定位置的元素。 底层从elementdate数组里面将后面的下标往前面移动一位
12、remove(Object 元素)
从列表中删除指定元素的第一个出现(如果存在)。 底层拿着被删除的元素和集合中其他得到元素做equals()。

ArrayList的构造方法

1、ArrayList list = new ArrayList list();
2、ArrayList list = new ArrayList list(int 容量);
3、ArrayList list = new ArrayList list(单值集合);

迭代器的三个方法

1、hasNext():检查序列中是否还有元素。
2、next();获得序列中的下一个元素。
3、remove();将迭代器新返回的元素删除。当我们使用迭代器在遍历集合的时候 不允许对集合的整体进行添加/删除操作 否触发CME异常,如果在遍历的时候想要删除的话 使用迭代器的删除方法。

import java.util.*;
public class TestArrayList5{
	/**
		当我们使用迭代器在遍历集合的时候 不允许对集合的整体
		进行添加/删除操作 否则触发CME异常
		CME异常=ConcurrentModificationException = 并发修改异常
		forEach底层基于迭代器实现的
		如果我们想要一边遍历的同时对集合进行删除的话:
			使用迭代器的删除方法
	*/
	public static void main(String[] args){

		ArrayList<Integer> list = new ArrayList<>();
		Collections.addAll(list,45,30,66,13,88,72,51);

		//删除所有不及格的成绩
		//for + 下标
		/*
		for(int x = 0;x < list.size();x++){
			if(list.get(x) < 60){
				list.remove(x);
			}
		}*/
		//foreach
		/*
		for(Integer x : list){
			if(x < 60){
				//ConcurrentModificationException
				list.remove(x);
			}
		}*/
		//迭代器
		for(Iterator<Integer> car = list.iterator();car.hasNext();){
			Integer x = car.next();
			if(x < 60){
				//list.remove(x);
				car.remove();
			}
		}
		System.out.println(list);
	}
}
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爪洼小孙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值