空でないものに基づいて値を反転する必要があるサイズ 5の配列があります。
空でない値は連続していますが、任意のインデックスに入る可能性があります。たとえば、3 つの空でない値を持つことができます。
c[0], c[1], c[2] or
c[1], c[2], c[3] or
c[2], c[3], c[4]
またはそれらのうちの4つが任意の順序で来る..
c[0], c[1], c[2], c[3] or
c[1], c[2], c[3], c[4] or
値が空でない場合にのみ、配列を逆にする必要があります。したがって、ケース 1 では、c[2]、c[1]、c[0] などがあります。
ケースには c[3]、c[2]、c[1] などがあります。
空ではなく、配列が動的であり、要求から生成される要素の数。一部の外部コードはインデックスに依存しているため、要素をシフトしてインデックス 0 から開始することはできません。私がしなければならないことは、この配列を逆にして送り返すことだけです。
ハッシュマップを使用してインデックスをマークし、配列内の空でない要素の数をマークしようとしています。この後の進め方がわからないので、どんなアイデアでも大歓迎です!
HashMap<Integer, String> myHash = new HashMap<Integer, String>();
for(int i = c.length-1; i<=0 ; i--)
{
if(StringUtils.isNotBlank(c[i]))
{
countNonEmpty++;
myHash.put(i, c[i]); //We need to mark the index and decrement by the countNonEmpty
}
}
get the first hash element -
Iterator iter = myHash.keySet().iterator();
while(iter.hasNext())
{
Integer correctIndex = (Integer) iter.next();
//But all I need is the first element in hashMap to decide how to set the reverse array's index.
if(myHash.size() - correctIndex < 0 ) //This means it will have to be 0 to index for array
{
//What is the right index for c[]
c[correctIndex - myHash.size() + 1 ] = myHash.get(correctIndex);
continue;
}
else if(myHash.size() - correctIndex == 0)
{ //What is the right index for c[]
c[correctIndex - myHash.size() + 1 ] = myHash.get(correctIndex);
continue;
}