2013-07-25 4 views
0

Моего кода, как показано ниже:получения первого значения из коллекции

for (Map.Entry<Integer, ABC> x : getOfferCriteria().getCommitments() 
     .entrySet()) { 
    ABC abc = x.getValue(); 
    if (abc.getYYY() == 0) { 
     abc.setEnabled(false); 
    } 
} 

Как получить только первое значение и вывести его из строя, не используя для цикла, так как я знаю, что первое значение будет равно нулю всегда

+0

не может получить то, что вам нужно? пожалуйста, объясните – Jayesh

+0

Правильно объясните свой вопрос. –

ответ

-1

Что-то вроде:

new ArrayList<ABC>(getOfferCriteria().getCommitments().values()).get(0) 
+0

Непонятно, карта отсортирована одна, и вы получите первый элемент для ключа, значение которого равно 0. Из вашего решения, вы предположили, что первый элемент всегда равен 0. – Shashi

+0

Спасибо за ответ, это сработало – Techie

+0

@ 0mile Получить находится в списке не на карте. –

8

Во-первых, Map s, как правило, не заказываются, поэтому нет элемента. Если предположить, что сортируется или заказать:

map.values().iterator().next() 

TreeMap будет держать карту, отсортированных в каком-то определенном порядке. LinkedHashMap поддерживает двусвязный список между записями, чтобы поддерживать какой-то порядок доступа.

0

Попробуйте это,

getOfferCriteria().getCommitments() != null ? getOfferCriteria().getCommitments().get(0) : null; 
1

Если у вас есть LinkedHashMap, что порядок вставки сохраняется. Так что если вы создаете карту как

Map<Integer,ABC> myMap = new LinkedHashMap<Integer,ABC>(); 

, то вы можете непосредственно сделать следующее (Предполагая, что вы хотите отключить свойство элемента удержание 1-го ключа в карте) -

getOfferCriteria().getCommitments().get(0).setEnabled(false); 
+0

Спасибо за ответ – Techie

0

Просто назвать получить метод на карте, передавая значение ключа как 0

Example 
<PRE> 
     if(!getOfferCriteria().getCommitments().isEmpty()){ 
      Map.Entry<Integer, String> entrySet = 
         getOfferCriteria().getCommitments().entrySet().iterator().next(); 
      System.out.println("hello9"+entrySet .getValue()); 
     } 
</PRE> 
0

Очень длительным:

List<ABC> values = new ArrayList(yourMap.values()); 
Collections.sort(values, new Comparator<ABC>() { 

    public int compare(ABC o1, ABC o2) { 
     return o1.getYYY() - o2.getYYY(); 
    } 
});  

values.get(0).setEnabled(false); 
Смежные вопросы