java A1,A2,B1,B2进行排序
时间: 2023-08-30 21:07:15 浏览: 62
可以使用Java中的Arrays.sort()方法进行排序,示例代码如下:
```
String[] arr = {"A1", "A2", "B1", "B2"};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
```
这段代码会按照字母顺序对数组进行排序,并输出排序后的结果:`[A1, A2, B1, B2]`。如果想按照其他规则进行排序,可以自定义比较器并传入Arrays.sort()方法中。
相关问题
java list 排序 顺序是 a1a2b1b2c1c2 转 a1b1c1a2b2c2
可以使用 Java 中的 Collections.sort() 方法和自定义 Comparator 来实现这种排序。
假设你有一个 List<String>,其中元素为 a1、a2、b1、b2、c1、c2。下面是一个示例代码:
```
List<String> list = Arrays.asList("a1", "a2", "b1", "b2", "c1", "c2");
// 自定义 Comparator
Comparator<String> comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// 比较元素的第一个字符
int result = o1.charAt(0) - o2.charAt(0);
if (result != 0) {
return result;
}
// 如果第一个字符相同,比较第二个字符
return o1.charAt(1) - o2.charAt(1);
}
};
// 使用 Collections.sort() 方法排序
Collections.sort(list, comparator);
// 输出排序后的结果
System.out.println(list);
```
输出结果为:[a1, b1, c1, a2, b2, c2]。可以看到,元素已经按照 a1b1c1a2b2c2 的顺序排序了。
Java 两个线程交替输出a1b1a2b2a3b3依次类推
可以使用 `wait()` 和 `notify()` 方法来实现两个线程交替输出。具体实现如下:
```java
public class AlternatePrinting {
private static final Object lock = new Object();
private static int count = 1;
public static void main(String[] args) {
Thread thread1 = new Thread(new PrintTask("a"));
Thread thread2 = new Thread(new PrintTask("b"));
thread1.start();
thread2.start();
}
static class PrintTask implements Runnable {
private String value;
public PrintTask(String value) {
this.value = value;
}
@Override
public void run() {
synchronized (lock) {
while (count <= 20) {
if ((count % 2 == 0 && "a".equals(value)) || (count % 2 == 1 && "b".equals(value))) {
System.out.print(value + count);
count++;
lock.notifyAll();
} else {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
}
```
在 `PrintTask` 中,线程会不断地检查当前是否轮到自己输出,如果是就输出,并且通过 `notifyAll()` 方法唤醒另一个线程,否则就等待。在 `main()` 方法中,启动两个线程分别输出 `a` 和 `b`。运行后,会不断地交替输出 `a1b1a2b2a3b3...` 直到输出 `a10b10`。