Java基础回顾 : Arrays类和Comparator接口

一 、 java.util.Arrays 类是一个专门提供数组操作的支持类 .

① . public static boolean equals(数组1,数组2) ;   两个数组彼此相等,就返回true .

② . public static void sort(int[] a) . 对数组元素进行排序. 除此之外还有其他的重载方法.

③ . public static void sort(Object[] a) .根据元素的自然顺序对指定对象数组按升序进行排序。数组中的所有元素都必须实现 Comparable 接口。

eg : 

package example;

import java.util.Arrays;
import java.util.Comparator;

class Book implements Comparable<Book>{
	private String title;
	private double price;
	
	public Book() {
	}
	
	public Book(String title,double price){
		this.title = title;
		this.price = price;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

	@Override
	public int compareTo(Book o) {
		if(this.price > o.price){
			return 1;
		} else if(this.price < o.price) {
			return -1;
		}
		return 0;
	}
	
	@Override
	public String toString() {
		return "书名 : " + this.title + " ,价格 : " + this.price + "\n";
	}
	
}

public class TestDemo {
	public static void main(String[] args) throws Exception {
		Book b1 = new Book("天龙八部",10);
		Book b2 = new Book("西游记",30);
		Book b3 = new Book("射雕英雄传",20);
		
		Book books[] = new Book[]{b1,b2,b3};
		Arrays.sort(books);
		System.out.println(Arrays.toString(books));
	}
}


上面的情况要求Comparable 必须在一个类定义的时候就将其实现完整,但是在实际的开发之中也会出现这样的一种情况:一个类已经开发完成了,并且这个类不能修改了。但是现在突然有了新的要求是:可以进行排序。为了解决这样的问题,在Java 里面又提供了一个新的接口:java.util.Comparator 接口。

eg :

package example;

import java.util.Arrays;
import java.util.Comparator;

class Book{
	private String title;
	private double price;
	
	public Book() {
	}
	
	public Book(String title,double price){
		this.title = title;
		this.price = price;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}
	
	@Override
	public String toString() {
		return "书名 : " + this.title + " ,价格 : " + this.price + "\n";
	}
	
}

//比较器接口是用来作补救的,如果现有的代码不能改变了,后来又想加入能进行比较的功能
class BookComparator implements Comparator<Book> {

	@Override
	public int compare(Book o1, Book o2) {
		if(o1.getPrice() > o2.getPrice()) {
			return 1;
		} else if (o1.getPrice() < o2.getPrice()){
			return -1;
		}
		return 0;
	}
	
}

public class TestDemo {
	public static void main(String[] args) throws Exception {
		Book b1 = new Book("天龙八部",10);
		Book b2 = new Book("西游记",30);
		Book b3 = new Book("射雕英雄传",20);
		
		Book books[] = new Book[]{b1,b2,b3};
		Arrays.sort(books, new BookComparator());
		System.out.println(Arrays.toString(books));
	}
}

★ . 关于Comparable 和Comparator 的区别?
· java.lang.Comparable 是在类定义的时候默认实现好的接口,里面只有一个compareTo()方法;
· java.util.Comparator 是需要单独定义一个比较规则,属于挽救功能的操作。

### 关于2025AAAI会议中的异常检测研究主题和议程 通常情况下,国际人工智能协会(AAAI)每年都会在其年度会议上讨论最新的研究成果和技术进展。对于特定领域如异常检测,在2025年的AAAI会议中预计会涉及多个方面。 #### 异常检测技术的发展趋势 近年来,随着机器学习特别是深度学习的进步,异常检测方法也得到了显著改进。这些进步不仅体现在算法性能上,还包括处理复杂数据结构的能力以及跨域应用的可能性[^1]。 #### 主要议题可能包括但不限于: - **基于自监督学习的异常检测模型** 探讨如何利用未标记的数据来训练更加鲁棒且泛化能力强的异常识别系统。 - **多模态融合下的异常事件预测** 结合图像、视频流和其他传感器输入等多种类型的感知信息来进行更精准的事物状态评估与预警分析。 - **实时在线更新机制设计** 针对动态变化环境的特点,研究能够快速适应新情况并保持高效运行时间表现的方法论框架。 - **解释性和透明度提升策略** 构建既具备高精度又易于理解其决策过程的人工智能解决方案,从而增强用户信任感和支持力度。 ```python # 示例代码展示了一个简单的异常检测函数实现方式 def detect_anomalies(data_series, threshold=3): mean = data_series.mean() std_dev = data_series.std() anomalies = [] for value in data_series: z_score = (value - mean) / std_dev if abs(z_score) > threshold: anomalies.append(value) return anomalies ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值