创建一个随机磁盘文件输入长度的数组
Posted
技术标签:
【中文标题】创建一个随机磁盘文件输入长度的数组【英文标题】:Creating an array the length of a random disk file input 【发布时间】:2017-03-14 20:31:36 【问题描述】:我正在编写一个程序,它允许用户从磁盘文件中输入多达 1000 个字符串元素。这发生在另一个字符串数组方法中,然后将它们复制到另一个数组中,然后在下面的方法中对它们进行冒泡排序。但是,由于我的新数组长度需要 1000 个元素,而磁盘文件只放入 50 个元素,因此出现错误。我认为解决我的问题的最佳方法是创建一个长度与磁盘文件中的字符串。但是,我不确定如何创建另一个磁盘文件输入长度的数组。任何帮助都会很棒。
public static String[]bubbleSort(String[] inputArr)
String[] Array2 = new String[inputArr.length];
for(int i=0;i<inputArr.length;i++)
Array2[i] = inputArr[i];
for (int i = 0; i<Array2.length; i++)
for (int j = 0; j<Array2.length-1; j++)
if (Array2[j].compareTo(Array2[j+1]) > 0)
String temp = Array2[j];
Array2[j] = Array2[j+1];
Array2[j+1] = temp;
return Array2;
【问题讨论】:
我建议您向我们展示您的磁盘输入代码,因为这是您需要更改的内容。 只需要了解如何将未知长度的数组复制到另一个数组中吗? Make copy of array Java的可能重复 @Steave Arrays.copyOf 。您必须将新的大小传递给它,当您阅读输入时应该知道该大小。 @PeterLawrey 你如何传递新的尺寸?抱歉,我对编码很陌生。 【参考方案1】:您可以使用列表代替数组,它可以是一个大小动态增长的数组列表。
List al = new ArrayList();
for(文件中的字符串) al.add(文件中的字符串);
然后根据Arraylist的大小,你可以创建一个数组并从数组列表中复制元素,或者你可以直接将arraylist转换为数组,如下所示。
ArrayList<String> al = new ArrayList<String>();
al.add("Amith");
al.add("Kumar");
String[] arr =(String[]) al.toArray(new String[al.size()]);
【讨论】:
以上是关于创建一个随机磁盘文件输入长度的数组的主要内容,如果未能解决你的问题,请参考以下文章
创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值格不相同。
LeetCode 1480. 一维数组的动态和 / 1588. 所有奇数长度子数组的和 / 528. 按权重随机选择(随机化)