用Java语言实现两个表(分别为R和S,数据成员用a1,b1,c1表示,数据类型为char)的差并交集(要求用到双重循环),并输出到txt文件
时间: 2024-05-05 16:21:25 浏览: 66
以下是Java语言实现两个表的差并交集,并将结果输出到txt文件的示例代码:
```java
import java.io.FileWriter;
import java.io.IOException;
public class TableOperations {
public static void main(String[] args) {
// 定义表R和表S
char[][] R = {{'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'}};
char[][] S = {{'a', 'b', 'c'}, {'j', 'k', 'l'}, {'m', 'n', 'o'}};
// 定义结果表
char[][] result = new char[3][3];
// 求并集
for (int i = 0; i < R.length; i++) {
for (int j = 0; j < R[i].length; j++) {
result[i][j] = R[i][j];
}
}
for (int i = 0; i < S.length; i++) {
for (int j = 0; j < S[i].length; j++) {
if (!contains(result, S[i][j])) {
result = addRow(result, S[i]);
}
}
}
// 将结果输出到txt文件
outputToFile("result_union.txt", result);
// 求交集
result = new char[0][];
for (int i = 0; i < R.length; i++) {
for (int j = 0; j < R[i].length; j++) {
if (contains(S, R[i][j]) && !contains(result, R[i][j])) {
result = addRow(result, new char[]{R[i][j]});
}
}
}
// 将结果输出到txt文件
outputToFile("result_intersection.txt", result);
// 求差集
result = new char[0][];
for (int i = 0; i < R.length; i++) {
for (int j = 0; j < R[i].length; j++) {
if (!contains(S, R[i][j]) && !contains(result, R[i][j])) {
result = addRow(result, new char[]{R[i][j]});
}
}
}
// 将结果输出到txt文件
outputToFile("result_difference.txt", result);
}
// 判断二维数组中是否包含某个元素
private static boolean contains(char[][] array, char target) {
for (char[] row : array) {
for (char element : row) {
if (element == target) {
return true;
}
}
}
return false;
}
// 向二维数组中添加一行
private static char[][] addRow(char[][] array, char[] row) {
char[][] result = new char[array.length + 1][];
for (int i = 0; i < array.length; i++) {
result[i] = array[i];
}
result[array.length] = row;
return result;
}
// 将二维数组输出到txt文件
private static void outputToFile(String fileName, char[][] array) {
try {
FileWriter writer = new FileWriter(fileName);
for (char[] row : array) {
for (char element : row) {
writer.write(element + " ");
}
writer.write("\n");
}
writer.close();
} catch (IOException e) {
System.out.println("Error writing to file " + fileName);
}
}
}
```
在该示例代码中,我们先定义了两个表R和S,然后分别求出它们的并集、交集和差集,并将结果输出到txt文件。其中,contains函数用于判断二维数组中是否包含某个元素,addRow函数用于向二维数组中添加一行,outputToFile函数用于将二维数组输出到txt文件。
阅读全文