Java线性表比较大小:数组、ArrayList、LinkedList实现
{"title":"Java线性表比较大小:数组、ArrayList、LinkedList实现", "description":"本文介绍了使用Java三种数据结构(数组、ArrayList、LinkedList)实现线性表,并比较其大小的方法。提供了三种实现方式的代码示例,并详细解释了比较大小的逻辑。", "keywords":"线性表, 比较大小, Java, 数组, ArrayList, LinkedList, 数据结构, 代码示例", "content":""Java线性表比较大小:数组、ArrayList、LinkedList实现"\n\n本文介绍了使用Java三种数据结构(数组、ArrayList、LinkedList)实现线性表,并比较其大小的方法。提供了三种实现方式的代码示例,并详细解释了比较大小的逻辑。\n\n### 方法一:使用数组实现线性表,比较大小\n\njava\nimport java.util.Scanner;\n\npublic class CompareLinearList {\n public static void main(String[] args) {\n Scanner scanner = new Scanner(System.in);\n\n // 输入A表的元素数量\n System.out.print("请输入A表的元素数量:");\n int m = scanner.nextInt();\n int[] A = new int[m];\n System.out.println("请输入A表的元素:");\n for (int i = 0; i < m; i++) {\n A[i] = scanner.nextInt();\n }\n\n // 输入B表的元素数量\n System.out.print("请输入B表的元素数量:");\n int n = scanner.nextInt();\n int[] B = new int[n];\n System.out.println("请输入B表的元素:");\n for (int i = 0; i < n; i++) {\n B[i] = scanner.nextInt();\n }\n\n // 比较A、B两表的大小\n int result = compareLinearList(A, B);\n if (result < 0) {\n System.out.println("A < B");\n } else if (result > 0) {\n System.out.println("A > B");\n } else {\n System.out.println("A = B");\n }\n }\n\n // 比较A、B两表的大小\n public static int compareLinearList(int[] A, int[] B) {\n int i = 0;\n int j = 0;\n while (i < A.length && j < B.length) {\n if (A[i] < B[j]) {\n return -1;\n } else if (A[i] > B[j]) {\n return 1;\n } else {\n i++;\n j++;\n }\n }\n\n if (i == A.length && j == B.length) {\n return 0;\n } else if (i == A.length) {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n\n### 方法二:使用ArrayList实现线性表,比较大小\n\njava\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.Scanner;\n\npublic class CompareLinearList {\n public static void main(String[] args) {\n Scanner scanner = new Scanner(System.in);\n\n // 输入A表的元素数量\n System.out.print("请输入A表的元素数量:");\n int m = scanner.nextInt();\n List<Integer> A = new ArrayList<>();\n System.out.println("请输入A表的元素:");\n for (int i = 0; i < m; i++) {\n A.add(scanner.nextInt());\n }\n\n // 输入B表的元素数量\n System.out.print("请输入B表的元素数量:");\n int n = scanner.nextInt();\n List<Integer> B = new ArrayList<>();\n System.out.println("请输入B表的元素:");\n for (int i = 0; i < n; i++) {\n B.add(scanner.nextInt());\n }\n\n // 比较A、B两表的大小\n int result = compareLinearList(A, B);\n if (result < 0) {\n System.out.println("A < B");\n } else if (result > 0) {\n System.out.println("A > B");\n } else {\n System.out.println("A = B");\n }\n }\n\n // 比较A、B两表的大小\n public static int compareLinearList(List<Integer> A, List<Integer> B) {\n int i = 0;\n int j = 0;\n while (i < A.size() && j < B.size()) {\n if (A.get(i) < B.get(j)) {\n return -1;\n } else if (A.get(i) > B.get(j)) {\n return 1;\n } else {\n i++;\n j++;\n }\n }\n\n if (i == A.size() && j == B.size()) {\n return 0;\n } else if (i == A.size()) {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n\n### 方法三:使用LinkedList实现线性表,比较大小\n\njava\nimport java.util.LinkedList;\nimport java.util.List;\nimport java.util.Scanner;\n\npublic class CompareLinearList {\n public static void main(String[] args) {\n Scanner scanner = new Scanner(System.in);\n\n // 输入A表的元素数量\n System.out.print("请输入A表的元素数量:");\n int m = scanner.nextInt();\n List<Integer> A = new LinkedList<>();\n System.out.println("请输入A表的元素:");\n for (int i = 0; i < m; i++) {\n A.add(scanner.nextInt());\n }\n\n // 输入B表的元素数量\n System.out.print("请输入B表的元素数量:");\n int n = scanner.nextInt();\n List<Integer> B = new LinkedList<>();\n System.out.println("请输入B表的元素:");\n for (int i = 0; i < n; i++) {\n B.add(scanner.nextInt());\n }\n\n // 比较A、B两表的大小\n int result = compareLinearList(A, B);\n if (result < 0) {\n System.out.println("A < B");\n } else if (result > 0) {\n System.out.println("A > B");\n } else {\n System.out.println("A = B");\n }\n }\n\n // 比较A、B两表的大小\n public static int compareLinearList(List<Integer> A, List<Integer> B) {\n int i = 0;\n int j = 0;\n while (i < A.size() && j < B.size()) {\n if (A.get(i) < B.get(j)) {\n return -1;\n } else if (A.get(i) > B.get(j)) {\n return 1;\n } else {\n i++;\n j++;\n }\n }\n\n if (i == A.size() && j == B.size()) {\n return 0;\n } else if (i == A.size()) {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n\n### 代码解释\n\n上述代码中,compareLinearList 方法实现了比较两个线性表大小的逻辑。该方法采用逐对比较的方式,依次比较两个线性表中对应位置的元素。\n\n1. 如果两个线性表中对应位置的元素不相等,则根据大小关系直接返回比较结果。\n\n2. 如果两个线性表中对应位置的元素相等,则继续比较下一对元素。\n\n3. 如果两个线性表中有一个线性表已经遍历完毕,而另一个线性表还有元素,则根据遍历完毕的线性表是A还是B,分别返回 -1 或 1,表示 A 小于 B 或 A 大于 B。\n\n4. 如果两个线性表都遍历完毕,则返回 0,表示 A 等于 B。\n\n### 总结\n\n本文介绍了使用Java三种数据结构(数组、ArrayList、LinkedList)实现线性表,并比较其大小的方法。三种实现方式都使用了相同的比较逻辑,但由于数据结构的差异,在实际应用中,需要根据具体情况选择合适的数据结构。\n\n注意: 上述代码仅供参考,可以根据实际需求进行修改和完善。\n
原文地址: https://www.cveoy.top/t/topic/pqrZ 著作权归作者所有。请勿转载和采集!