繁体   English   中英

在Java中串联2个2D数组?

[英]Concatenating 2 2D arrays in java?

我有2个2D数组,一个int和一个String,由于它们具有相同的行数,我希望它们彼此相邻出现。 有没有办法做到这一点? 我已经考虑过串联,但是这要求它们是同一类型的数组,因此在那种情况下,有没有办法使我的int数组成为String数组?

如果要一个既可以容纳String又可以容纳int的数组,则基本上有两种选择:

  1. 将它们都视为对象,因此有效的是Object[][] concatArray 自动装箱会将您的整数转换为整数。

  2. 将它们都视为字符串(使用String.valueOf(int)和Integer.parseInt(String))。

我不知道一个事实,但是我猜想自动装箱是一种比较便宜的操作,它可以将整数转换为字符串然后返回。

此外,您始终可以使用instanceof运算符找出数组中单元格的值类型; 如果将值转换为String,则实际上您需要解析一个值以找出它只是文本的一部分还是数字的文本表示。

这两个考虑因素(一个是猜测,另一个可能与您的情况无关)将支持使用上述选项1。

串联时将int转换为Strings即可。 最终结果将是String类型的2D数组。

要将一个int连接到一个字符串,您可以使用

int myInt = 5;
String newString = myInt + "";

它很脏,但是很常见,因此可以识别,并且可以正常工作。

我可以通过两种方法执行此操作:

  1. 您可以创建一个包含字符串和整数的自定义数据对象。 如果两个项目属于同一类,这将是最好的方法。 这也使比较行变得更加容易。
  2. 您可以创建一个4D对象数组,并将所有值放在一起,如下所示。 我不建议这样做,但确实可以解决问题,

我听到背景中潜伏着维度的诅咒,那就是-我想到的第一个答案是:

final List<int,String> list = new List<int,String>();

然后查看op的语句,我们看到两个[] []提出了排序问题。 已经看了两个好的答复,我们可以做Integer.toString(int);。 为了得到满足op问题定义的串联,那么排序是有效的还是固定的,以及(再次)对第二个数组做什么? 是元组吗? 如果是这样,如何“保存”行中的数据...然后我们可以做List<Pair<Integer,String>> or List<Pair<String,String>> ,这对我来说是典型的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM