4

適切な出力を得るために条件を追加する必要がある小さなコードがあります。

mimeList 内の要素が Last の場合は、else部分に移動します。またはifに。

この ArrayList には常に 1 つの要素があります。

(要素が 1 つしかない場合は、それが最後の要素であることを意味します。)

for (int i = 0; i < mimeList.size(); i++) {
    StringBuffer sb = new StringBuffer();

    if () {
        queryString = sb.append(queryString).append(key)
        .append("=").append(mimeList.get(i)).append(" or ").toString();
    }else{
        queryString = sb.append(queryString).append(key)
        .append("=").append(mimeList.get(i)).toString();
    }
}
4

8 に答える 8

10

あなたの質問の見出しについて:

JavaでArrayListの最初と最後の要素を取得する

それはかなり単純なはずです:

mimeList.get(0); // To get first
mimeList.get(mimeList.size()-1); //to get last

そしてあなたのif状態について:

if(!(i==0 || i==mimeList.size()-1))

あなたがそれを次のように表現したように:

mimeList の要素が最初または最後である場合は、else 条件に入り、それ以外の場合は if 条件になります

!if条件で使いました。そうでなければ、以下はかなりクールです:

if((i>0) && (i!=mimeList.size()-1))
于 2012-08-06T13:09:58.837 に答える
5

多くのチェックなしで行うより簡単な方法は、最初は空のセパレーターを使用することです。

StringBuilder sb = new StringBuilder();
String sep = "";
for (String s : mimeList) {
    sb.append(sep + key + "=" + s);
    sep = " or ";
}
于 2012-08-06T13:29:02.903 に答える
2

そのようなものはうまくいくはずです: if ((i > 0) && (i < mimeList.size() - 1)). 0 ベースの Java コレクションでは、最初の要素は location0にあり、最後の要素は atCollection.Size - 1になります。これは、th の場所にアクセスするCollection.Sizeと範囲外の例外が発生するためです。

于 2012-08-06T13:08:48.353 に答える
2

あなたの質問から私が収集できることから、次のようなものが必要です。

ArrayList<Foo> foos = fooGenerator.generateFoos();

for(int i = 0; i < foos.size(); i++) {
    if(i != (foos.size() - 1)) {
        System.out.println("Front elements of ArrayList");
    }
    else {
        System.out.println("Last element of ArrayList!");
    }
}
于 2012-08-06T13:12:14.367 に答える
1

の中にあるiことを考えるとIntegerArrayList.

if ((i > 0) && (i < mimeList.size() - 1))
于 2012-08-06T13:10:09.433 に答える
0

次のようなものを試してください

if(i == 0 || i == mimeList.size() - 1)

それが役立つことを願っています!

于 2012-08-06T13:08:05.623 に答える
0

あなたのコードにはすでにほとんどの答えがあります:

配列の最初の要素から最後の要素までループします。

最初: インデックス 0、最後: インデックス (サイズ - 1) を持つ

これにより、次の状態になります。

if ((i > 0) && (i < mimeList.size() - 1))
于 2012-08-06T13:09:02.413 に答える