将无序String复制到有序String中的有效方法

时间:2013-07-29 23:23:10

标签: java string algorithm

我在Hadoop Java中这样做,我正在读一个字符串。字符串很大,已被标记化并放入数组中。 它具有键值对,但它们不是任何顺序。我希望这个顺序是严格的,所以我可以加载它作为一个表。所以在SQL中,如果我选择一个列(在表中加载它之后),一种类型的所有键都应该在colA中。

我正在检查String数组的每个单词,并将它们复制到固定位置的新字符串中。我想这样做的方法就是使用if else ladder这样:      // 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}。基本上我正在重新安排所有输入到固定输出。

1 个答案:

答案 0 :(得分:2)

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