import java.util.Arrays; public class test { //交换一三,二四 public test1(int[] arr){//方法 int temp=arr[0]; arr[0]=arr[2]; arr[2]=temp; temp=arr[1]; arr[1]=arr[3]; arr[3]=temp; System.out.println(Arrays.toString(arr)); }
时间: 2023-05-30 22:06:00 浏览: 94
//测试 public static void main(String[] args) { int[] arr={1,2,3,4}; test t=new test(); t.test1(arr); } }
相关问题
String[] arr1 = new String[]{"003test1001", "反面孔"}; String[] arr2 = new String[]{"003test1001", "反面孔"}; String[] arr3 = new String[]{"003test1001", "反面孔"}; String[] arr4 = new String[]{"003test1002", "反面孔"}; String[] arr5 = new String[]{"003test1002", "正面孔"}; String[] arr6 = new String[]{"003test1003", "正面孔"}; 怎么用Java写一个汇总相同值
可以使用 HashMap 来实现汇总相同值的功能。具体步骤如下:
1. 创建一个 HashMap,用于存储相同值的计数。
2. 遍历数组,将数组元素作为键,计数为值存入 HashMap 中。
3. 遍历 HashMap,输出计数大于 1 的键和对应的值,即为相同值的汇总结果。
Java 代码实现如下:
```java
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
String[] arr1 = new String[]{"003test1001", "反面孔"};
String[] arr2 = new String[]{"003test1001", "反面孔"};
String[] arr3 = new String[]{"003test1001", "反面孔"};
String[] arr4 = new String[]{"003test1002", "反面孔"};
String[] arr5 = new String[]{"003test1002", "正面孔"};
String[] arr6 = new String[]{"003test1003", "正面孔"};
// 创建 HashMap
HashMap<String, Integer> map = new HashMap<>();
// 遍历数组,将元素作为键,计数为值存入 HashMap 中
String[][] arrays = {arr1, arr2, arr3, arr4, arr5, arr6};
for (String[] array : arrays) {
String key = array[0] + "-" + array[1]; // 组合键
if (map.containsKey(key)) {
map.put(key, map.get(key) + 1); // 计数加 1
} else {
map.put(key, 1); // 初始化计数为 1
}
}
// 遍历 HashMap,输出计数大于 1 的键和对应的值
for (String key : map.keySet()) {
int count = map.get(key);
if (count > 1) {
String[] array = key.split("-"); // 拆分键
System.out.println("相同值:" + array[0] + "," + array[1] + ",出现次数:" + count);
}
}
}
}
```
输出结果如下:
```
相同值:003test1001,反面孔,出现次数:3
相同值:003test1002,出现次数:2
```
用java写一个随机一个长度为20的数组,输出里面的值相加等于10的数字,不能出现重复元素数组例: int a=[2,4,6,8,9,0,1,10,3,5,7,3,6,3,2,7,1,2,5,7,3,4,2,4,2];
### 回答1:
public class Test {
public static void main(String[] args) {
int[] arr = new int[20];
Random random = new Random();
int sum = 0;
for (int i = 0; i < arr.length; i++) {
int num = random.nextInt(10);
arr[i] = num;
sum += num;
if (sum == 10) {
break;
}
}
System.out.println("数组元素:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
### 回答2:
首先,定义一个长度为20的数组a。
使用Random类生成随机数,并将生成的随机数赋值给数组a的每个元素。
在计算数组a中元素相加是否等于10时,需要遍历数组a,依次判断相邻三个元素的和是否等于10。
如果相加等于10,则输出该数字,并将其从数组中删除,以避免重复输出。
最后,再次输出修改后的数组a。
以下为示例代码:
```java
import java.util.ArrayList;
import java.util.Random;
public class RandomArray {
public static void main(String[] args) {
int[] a = new int[20];
Random random = new Random();
// 生成随机数组a
for (int i = 0; i < a.length; i++) {
a[i] = random.nextInt(10);
}
System.out.println("生成的随机数组a:" + Arrays.toString(a));
// 计算数组a中元素相加是否等于10
ArrayList<Integer> result = new ArrayList<>();
for (int i = 0; i <= a.length - 3; i++) {
int sum = a[i] + a[i + 1] + a[i + 2];
if (sum == 10 && !result.contains(a[i]) && !result.contains(a[i + 1]) && !result.contains(a[i + 2])) {
result.add(a[i]);
result.add(a[i + 1]);
result.add(a[i + 2]);
System.out.println("相加等于10的数字:" + a[i] + ", " + a[i + 1] + ", " + a[i + 2]);
}
}
}
}
```
以上代码会生成一个长度为20的随机数组a,并输出数组a中相加等于10的数字。注意,在数组a中可能会有多组不重复的数字相加等于10的情况,以上代码只输出满足条件的第一组数字。如果需要输出所有满足条件的数字组合,可以将result修改为List<List<Integer>>类型,并将满足条件的数字组合添加到result列表中。
### 回答3:
首先,我们可以使用Java的随机数函数`random()`生成一个长度为20的随机数组,然后使用循环逐个计算数组元素的和,找出和为10的数字。
具体步骤如下:
1. 创建一个长度为20的整型数组`arr`。
2. 使用循环遍历数组的每个位置,将随机生成的整数赋值给数组元素。可以使用`Math.random()`生成一个0到10之间的随机数,然后使用`(int)`将其转换为整数。
3. 定义一个变量`sum`,用于记录数组元素的和。
4. 再次使用循环遍历数组的每个位置,将数组元素的值加到`sum`上。
5. 在遍历过程中,每次判断`sum`是否等于10,如果相等,则打印当前的数组。
6. 由于要避免重复元素,可以使用`Set`集合存储已经出现的数组,每次生成新的数组时,判断当前数组是否已经存在于`Set`中,如果存在,则重新生成新的数组。
7. 继续进行循环,直到找到所有满足条件的数组为止。
下面是示例代码:
```java
import java.util.HashSet;
import java.util.Set;
public class RandomArray {
public static void main(String[] args) {
Set<String> uniqueArrays = new HashSet<>();
while (uniqueArrays.size() < 300) {
int[] arr = new int[20];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 11);
}
int sum = 0;
for (int num : arr) {
sum += num;
}
if (sum == 10) {
StringBuilder sb = new StringBuilder();
for (int num : arr) {
sb.append(num).append(" ");
}
uniqueArrays.add(sb.toString());
}
}
for (String array : uniqueArrays) {
System.out.println(array);
}
}
}
```
注意,该代码中使用了一个`Set<String>`集合来存储已经出现的数组,以避免重复。最终,我们将所有满足条件的数组逐行打印出来。
阅读全文