Int类型怎么无规则排序java
时间: 2023-05-11 15:06:03 浏览: 64
在Java中,Int类型的排序可以使用Arrays.sort()方法进行排序,但是如果要进行无规则排序,需要使用Collections.shuffle()方法来打乱数组的顺序。可以使用以下代码实现:
int[] arr = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
Collections.shuffle(list);
int[] shuffledArr = list.stream().mapToInt(Integer::intValue).toArray();
这样就可以实现Int类型的无规则排序了。
相关问题
java枚举类型赋值int类型的val,进行优先级排序
对于Java的枚举类型,可以通过实现`Comparable`接口来指定枚举的排序规则。下面给出一个例子:
```java
public enum MyEnum implements Comparable<MyEnum> {
A(1),
B(2),
C(3);
private int val;
MyEnum(int val) {
this.val = val;
}
public int getVal() {
return this.val;
}
@Override
public int compareTo(MyEnum o) {
return Integer.compare(this.val, o.val);
}
}
```
在这个例子中,我们定义了一个枚举类型`MyEnum`,每个枚举值都有一个对应的`val`属性。我们实现了`Comparable`接口,并重写了其中的`compareTo`方法,用于指定枚举值的排序规则。在这个例子中,我们通过比较对应的`val`属性来确定枚举值的优先级。
使用的时候,我们可以将枚举值放到一个数组中,然后使用`Arrays.sort`方法对数组进行排序,就可以按照指定规则对枚举值进行排序了。例如:
```java
MyEnum[] arr = {MyEnum.C, MyEnum.B, MyEnum.A};
Arrays.sort(arr);
for (MyEnum e : arr) {
System.out.println(e);
}
```
输出结果为:
```
A
B
C
```
可以看到,按照`val`属性的大小,枚举值被正确地排序了。
java枚举排序规则
Java枚举类型默认是按照它们在代码中定义的顺序进行排序的。如果需要按照不同的规则进行排序,可以实现`java.lang.Comparable`接口或使用`java.util.Comparator`接口来定义排序规则。
实现`java.lang.Comparable`接口的枚举类需要重写`compareTo()`方法,该方法比较两个枚举类型的顺序。例如,以下是一个简单的枚举类实现了`Comparable`接口:
```
public enum Size implements Comparable<Size> {
SMALL,
MEDIUM,
LARGE;
@Override
public int compareTo(Size other) {
return this.ordinal() - other.ordinal();
}
}
```
在这个例子中,`compareTo()`方法比较两个Size值的顺序。`ordinal()`方法返回一个枚举常量的整数值,表示此枚举常量在枚举类型中的位置。因此,`compareTo()`方法返回两个Size值的ordinal()差值。
如果你不想修改枚举类型本身,可以创建一个实现`java.util.Comparator`接口的类来定义排序规则。例如:
```
public class SizeComparator implements Comparator<Size> {
@Override
public int compare(Size s1, Size s2) {
return s1.ordinal() - s2.ordinal();
}
}
```
这个比较器可以用于对任何包含Size值的集合进行排序。例如:
```
List<Size> sizes = Arrays.asList(Size.MEDIUM, Size.SMALL, Size.LARGE);
Collections.sort(sizes, new SizeComparator());
```
这将按照Size值的顺序对sizes集合进行排序。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)