java - 如何从二维数组复制 1 列并将其放入一维数组
问题描述
我正在尝试将 1 列的名称从 2d 数组放入一个名为 names 的 String 1d 数组中,但它会重复 5 次。我似乎无法让它出现一次,关于我能做些什么来解决这个问题的任何想法?
// a 2d array list obtained from a file
Monica - 23
Mike - 24
Adam - 44
Mark - 78
Beth - 78
public static String [] sortName (String [] [] data) {
// Sort the names and put it in a 1d array
//[rows] [col]
String [] names = new String [5];
for (int n = 0; n < names.length; n++) {
for (int q = 0; q < 5; q++ ) {
names [n] = data[q] [0];
// Print to see if it works
System.out.println(names[n]);
}
}
return names;
}
//output
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth
解决方案
您的名称数组的长度为 5,因此它将在您的第一个循环中循环 5 次。您需要将其更改为 data.length 。
您需要将其更改为:
public static String[] sortName(String[][] data)
{
// Sort the names and put it in a 1d array
// [rows] [col]
String[] names = new String[data.length]; // <------ This needs to be the data.length and not 5.
for (int n = 0; n < names.length; n++)
{
for (int q = 0; q < data.length; q++)
{
names[n] = data[q][0];
// Print to see if it works
System.out.println(names[n]);
}
}
return names;
}
推荐阅读
- python - 设计用于在列表中查找 3 个不同元素的 O(log n) 算法
- postgresql - 想要使用 pgAdmin 连接到 PostgreSQL,但无法从字符串中找出凭据
- python - 为什么在 Selenium 中,命令 driver.find_element_by_xpath 不起作用?
- python - 使用 pycountry 从 iso-639 代码中获取完整的语言名称
- python - 在没有 PnP 的情况下在单目视觉里程计中查找相对比例
- flutter - 加载数据时更改 FutureBuilder 中的状态
- json - 在 Flutter 中对 Json 进行排序
- layout - 盖茨比的每一页都需要 GSAP 时间线
- xcode - mac os - “信任请求错误(-402,653,181)”
- azure - 适用于 Microsoft IIS httpd 10.0 的基于 Azure PCI 合规性 CPE 的漏洞