一列表 List<String> list = ArraysasList(“FA","WWA”"YKJ”,“JASA"),请对该 ist 进 行排序,使元素字符串长度从大到小排列,长度相同时比较字符大小,由大到小排序
时间: 2023-05-22 16:01:42 浏览: 78
可以使用 Collections.sort() 方法和自定义的 Comparator 对象来对该 List 进行排序,代码如下:
```
List<String> list = Arrays.asList("FA", "WWA", "YKJ", "JASA");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
if (s1.length() != s2.length()) {
return s2.length() - s1.length();
} else {
return s2.compareTo(s1);
}
}
});
System.out.println(list);
```
输出结果为:[WWA, JASA, YKJ, FA]
相关问题
一列表List<String> list = Arrays.asList("FA","WWA","YKJ","JASA"),请对该list经行排序,使元素字符长度从大到小排列,长度相同时比较字符大小,由大到小排序
可以使用Collections.sort()方法对该list进行排序,排序规则可以自定义一个Comparator来实现:
```
List<String> list = Arrays.asList("FA","WWA","YKJ","JASA");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
if (s1.length() != s2.length()) {
return s2.length() - s1.length();
} else {
return s2.compareTo(s1);
}
}
});
System.out.println(list);
```
输出结果为:[JASA, WWA, YKJ, FA]
2、使用6116(2K×8)芯片组成2K×8存储器系统,设起始地址为40000H,CPU用8086,请使用全译码法设计译码电路。
对于2K x 8存储器系统,需要12根地址线(A0~A11)和8根数据线(D0~D7)。我们可以将存储器按照每个芯片1K x 8的方式组成,需要使用2个6116芯片,每个芯片的地址线接A0~A10,数据线接D0~D7,其中A11接芯片的CS引脚,用于选择芯片。
根据题目要求,起始地址为40000H,转换成二进制为1000000000000000B,其中A0~A10对应的二进制位为00000000000B,因此需要将A11设置为1,选择第二个6116芯片。
现在需要设计译码电路,使用全译码法,需要使用3个74LS138译码器,其中一个译码器用于译码A0~A7,第二个译码器用于译码A8~A10,第三个译码器用于译码A11。
具体电路连接如下:
![](https://i.imgur.com/1bI4W3W.png)
其中,74LS138译码器的输入端接CPU的地址线,输出端接6116芯片的CS引脚。每个译码器的使能端(G)接高电平(+5V),输出端接或门,用于选择第二个6116芯片。
译码器的真值表如下:
| 74LS138输入 | 74LS138输出 |
|:----------:|:-----------:|
| A10 A9 A8 | Y2 Y1 Y0 |
| 0 0 0 | 0 0 1 |
| 0 0 1 | 0 1 0 |
| 0 1 0 | 1 0 0 |
| 0 1 1 | 不使用 |
| 1 0 0 | 不使用 |
| 1 0 1 | 不使用 |
| 1 1 0 | 不使用 |
| 1 1 1 | 不使用 |
根据真值表,可以得到以下电路连接方式:
![](https://i.imgur.com/6Wg4yKJ.png)
其中,A0~A7的译码器的输出端(Y2)和A8~A10的译码器的输出端(Y1、Y0)接或门,或门的输出端接第二个6116芯片的CS引脚,用于选择第二个芯片。