2012-08-06 357 views
3

我有小代碼,我必須添加條件才能獲得正確的輸出。在Java的ArrayList中獲取第一個和最後一個元素

如果mimeList中的元素是Last,那麼轉到否則部分。 或如果

此ArrayList中始終有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(); 
    } 
} 
+1

'如果(!(我== 0 ||我== mimeList.size() ))'? – 2012-08-06 13:07:25

+0

很難理解你到底在問什麼...... – auser 2012-08-06 13:07:46

+0

@auser如果是空白的,一定是他想要的代碼在哪裏? – Joshua 2012-08-06 13:08:07

回答

5

沒有太多檢查的簡單方法是使用分隔符,該分隔符在開始時爲空。

StringBuilder sb = new StringBuilder(); 
String sep = ""; 
for (String s : mimeList) { 
    sb.append(sep + key + "=" + s); 
    sep = " or "; 
} 
+0

:我編輯了我的問題。 Plz chk和幫助。 如果mimeList中的元素是Last,則轉到else部分。或者如果。 – GameBuilder 2012-08-06 14:16:31

+0

所有你需要的是「或」在鍵=值對之間。這是最簡單的方法。你不需要'if',你不需要重複代碼。 – 2012-08-06 14:19:19

0

試着這麼做

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

希望幫助!

+3

'我'不能等於'mimeList.size()'... – Baz 2012-08-06 13:08:55

+0

是的,在那裏有點快。編輯答案。 – Logard 2012-08-06 13:16:33

2

像這樣的東西應該工作:if ((i > 0) && (i < mimeList.size() - 1))。由於在基於0的Java集合中,第一個元素將位於0位置,最後一個將位於Collection.Size - 1,因爲訪問Collection.Size位置會導致出界異常。

+0

我編輯了我的問題。 Plz chk和幫助。 – GameBuilder 2012-08-06 14:13:52

0

你幾乎有答案已經在你的代碼:從第一你的數組中的最後元素

你循環。

第一:具有指數0, 最後:具有指數(大小 - 1)

這導致以下條件:

if ((i > 0) && (i < mimeList.size() - 1)) 
9

關於你的問題的標題:

獲得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元素是第一或最後它否則會進入 其他條件如果條件爲

我在if條件中使用了!。 否則,下面是很酷:

if((i>0) && (i!=mimeList.size()-1)) 
+0

不錯,看起來很簡單! – Ved 2012-08-06 13:12:23

+0

@PriyankDoshi我編輯了我的問題。 Plz chk和幫助。 – GameBuilder 2012-08-06 14:14:49

1

考慮到iIntegerArrayList.

if ((i > 0) && (i < mimeList.size() - 1)) 
+0

技術上'i'是一個'int'(一個基元),而不是'Integer'(一個對象)。 – 2012-08-06 14:13:00

+0

@KumarVivekMitra我編輯了我的問題。 Plz chk和幫助。 – GameBuilder 2012-08-06 14:14:25

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!"); 
    } 
} 
+0

我編輯了我的問題。 Plz chk和幫助。 – GameBuilder 2012-08-06 14:16:49

1
ArrayList<int> foos = ArrayList<int>(); 

第一個是

foos.get(0); 

最後是

foos.get(foo.size - 1); 
相關問題