-3

我在 Hadoop Java 中执行此操作,我正在读取字符串。字符串很大,已被标记并放入数组中。它有键值对,但它们没有任何顺序。我希望这个订单是刚性的,所以我可以把它作为一张桌子加载。因此,在 SQL 中,如果我选择一列(在将其加载到表中之后),则一种类型的所有键都应该在 colA 中。

我正在检查字符串数组的每个单词,并将它们复制到一个固定位置的新字符串中。我想到的方法是使用 if else 像这样的梯子: //row 是标记化的无序字符串

 String[] newRow = new String[150];

for (int i = 0; i < row.length; ++i) {

if(row[i].equals("token1")){
                   newRow[0] = row[i]; //key
                   newRow[1] = row[i+1];//value
               }

               else if(row[i].equals("token2")){
                   newRow[2] = row[i];
                   newRow[3] = row[i+1];
               }//...and so on. Elseif ladder at least is at least 100 long.

我想知道是否有更有效的方法来做到这一点?

PS:我没有对字符串进行排序。示例:row1 字符串是 {apple,good,banana,bad},row2 字符串是 {banana,good,apple,bad},其中 apple 和banana 是键。现在在我的输出中,我将有两条记录,说苹果作为第一个键,然后是香蕉。所以输出将是:newRow1: {apple,good,banana,bad} , newRow2: {apple,bad,banana,good}。本质上,我将所有输入重新排列为固定输出。

4

1 回答 1

2

把它全部扔掉并使用TreeMap。这就是它的用途。

于 2013-07-29T23:33:51.387 回答