在这个类里面存在有二分查找法:public static int binarySearch(Object[] a, int fromIndex, int toIndex, Object key)。但是要进行二分查找前提条件就是先要排序。
范例: 实现二分查找
packagecom.alpha;importjava.util.Arrays;publicclassMainClass{publicstaticvoidmain(String[]args)throwsException{int[] date =newint[]{1,5,6,2,3,4,9,8,7,10};Arrays.sort(date);System.out.println(Arrays.binarySearch(date,9));}}
Arrays提供了数组比较:public static boolean equals(Object[] a, Object[] a2),只不过借用了equals()方法名称与Object类的equals()没有任何关系。
要想判断数组是否相同,需要顺序完全一致。
填充数组:public static void fill(Object[] a, int fromIndex, int toIndex, Object val);
package com.alpha;
import java.util.Arrays;
public class MainClass{
public static void main(String[] args) throws Exception {
int[] datea = new int[] {1, 2, 3};
int[] dateb = new int[] {1, 2, 3};
System.out.println(Arrays.equals(datea, dateb));
}
}
package com.alpha;
import java.util.Arrays;
public class MainClass{
public static void main(String[] args) throws Exception {
int[] date = new int[10];
Arrays.fill(date, 3);
System.out.println(Arrays.toString(date));
}
}
public class Application {
public static void main(String[] args) {
UUID uid = UUID.randomUUID();
System.out.println(uid.toString());
}
}
public class Application {
public static void main(String[] args) {
MessageUtil.useMessage(MessageUtil.getMessage());
}
}
class MessageUtil {
public static IMessage getMessage() {
return null;
}
public static void useMessage(IMessage msg) {
if (msg != null) {
System.out.println(msg.getContent());
}
}
}
interface IMessage {
String getContent();
}
class MessageImpl implements IMessage {
@Override
public String getContent() {
return "Hello World!";
}
}
public class Application {
public static void main(String[] args) {
IMessage msg = MessageUtil.getMessage().get();
MessageUtil.useMessage(msg);
}
}
class MessageUtil {
public static Optional<IMessage> getMessage() {
return Optional.of(new MessageImpl());
}
public static void useMessage(IMessage msg) {
if (msg != null) {
System.out.println(msg.getContent());
}
}
}
interface IMessage {
String getContent();
}
class MessageImpl implements IMessage {
@Override
public String getContent() {
return "Hello World!";
}
}
public class Application {
public static void main(String[] args) {
Message message = new Message();
message.setInfo("Hello World!");
Channel.setMessage(message);
Channel.send();
}
}
class Channel {
private static Message message;
public static void setMessage(Message message) {
Channel.message = message;
}
public static void send() {
System.out.println("[SEND] " + message.getInfo());
}
}
class Message {
private String info;
public void setInfo(String info) {
this.info = info;
}
public String getInfo() {
return info;
}
}
public class Application {
public static void main(String[] args) {
new Thread(() -> {
Message message = new Message();
message.setInfo("Hello Thread A!");
Channel.setMessage(message);
Channel.send();
}, "Thread A").start();
new Thread(() -> {
Message message = new Message();
message.setInfo("Hello Thread B!");
Channel.setMessage(message);
Channel.send();
}, "Thread B").start();
new Thread(() -> {
Message message = new Message();
message.setInfo("Hello Thread C!");
Channel.setMessage(message);
Channel.send();
}, "Thread C").start();
}
}
class Channel {
private static Message message;
public static void setMessage(Message message) {
Channel.message = message;
}
public static void send() {
System.out.println("[SEND] " + message.getInfo());
}
}
class Message {
private String info;
public void setInfo(String info) {
this.info = info;
}
public String getInfo() {
return info;
}
}
public class Application {
public static void main(String[] args) {
new Thread(() -> {
Message message = new Message();
message.setInfo("Hello Thread A!");
Channel.setMessage(message);
Channel.send();
}, "Thread A").start();
new Thread(() -> {
Message message = new Message();
message.setInfo("Hello Thread B!");
Channel.setMessage(message);
Channel.send();
}, "Thread B").start();
new Thread(() -> {
Message message = new Message();
message.setInfo("Hello Thread C!");
Channel.setMessage(message);
Channel.send();
}, "Thread C").start();
}
}
class Channel {
private static final ThreadLocal<Message> THREAD_LOCAL = new ThreadLocal<>();
public static void setMessage(Message message) {
THREAD_LOCAL.set(message);
}
public static void send() {
System.out.println("[" + Thread.currentThread().getName() + " SEND] " + THREAD_LOCAL.get().getInfo());
}
}
class Message {
private String info;
public void setInfo(String info) {
this.info = info;
}
public String getInfo() {
return info;
}
}
public class Application {
public static void main(String[] args) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTask(), 100, 1000);
}
}
class MyTask extends TimerTask {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " 定时任务执行,当前时间:" + System.currentTimeMillis());
}
}
public class Application {
public static void main(String[] args) {
String msg = "Hello World!";
String encMsg = new String(Base64.getEncoder().encode(msg.getBytes()));
System.out.println(encMsg);
String oldMsg = new String(Base64.getDecoder().decode(encMsg));
System.out.println(oldMsg);
}
}