Shared Flashcard Set

Details

Operações Agregadas Aggregate Operations and Iterators
Trabalho L.P JAVA 8.0 Operações Agregadas Aggregate Operations and Iterators
20
Language - Portuguese
Graduate
04/16/2014

Additional Language - Portuguese Flashcards

 


 

Cards

Term

subclasse de Iterator.

Definition

template class ListIterator : public Iterator {

        public:ListIterator(const List* aList);
        virtual void First();
        virtual void Next();
}

Term

Imprime o nome de todos os membros com um loop for-each:

Definition

for (Person p : roster) {
        System.out.println(p.getName());
}

Term

Imprime o nome de todos os com o forEach operação de agregação:

Definition

roster.stream().forEach(e->System.out.println(e.getName());

Term

Encapsula uma iteração

Definition

template class FilteringListTraverser {
         public: FilteringListTraverser(List* aList);
         bool Traverse();
         protected:
         virtual bool ProcessItem(const Item&) = 0;

}

Term

Toda a lógica iteração pode ser reutilizado.

Definition

ListIterator i(employees);
int count = 0;
for (i.First(); !i.IsDone(); i.Next()) {
         count++;
         i.CurrentItem()->Print();
        if (count >= 10) {
            break;
       }
}

Term

Imprimir todos os  dados independente de uma representação concreta

Definition

AbstractList*>* employees;
   // ...
Iterator*>* iterator = employees->CreateIterator();
PrintEmployees(*iterator);
delete iterator;

Term

Retornar um objeto ListIterator

Definition

template Iterator*>* List::CreateIterator () const {
               return new ListIterator(this);
}

Term

Avançar o elemento atual

Definition

template void ListIterator::Next () {
        _current++;
}

Term

Posiciona o iterador para o primeiro elemento

Definition

template void ListIterator::First () {
     _current = 0;
}

Term

Habilitar iteração polimórfica, AbstractList

Definition

template class AbstractList {
      public: virtual Iterator* CreateIterator() const = 0;
     // ...
}

Term

Criar um vetor e adicionar alguns itens

Definition

public static void main(String args[]) {
         Vector v = new Vector();
        v.addElement(new Integer(5));
        v.addElement(new Integer(9));
        v.addElement(new String("Hi, There!"));

}

Term

Exemplo onde iterador externo é usado

Definition

for (Iterator it = options.iterator(); it.hasNext(); {
      String name = (String)it.next();
      System.out.println(name);
}
    Iterator name = options.iterator();
while (name.hasNext() ){
        System.out.println(name.next() );
}
for (Object item : options)
      System.out.println(((String)item));

Term

Evitando compromisso com a implementação da lista específica.

Definition

SkipList* employees;
  // ...
SkipListIterator iterator(employees);
   PrintEmployees(iterator);
    template class AbstractList {
        public virtual Iterator* CreateIterator() const = 0;
       // ...
     }
  template Iterator* List::CreateIterator () const {
      return new ListIterator(this);
 } 

Term

Calcular a média de idade de todos os membros armazenados em uma estrutura de dados

Definition

double average = roster.stream().filter(p >p.getGender()==Person.Sex.MALE).mapToInt(Person::getAge) .average() .getAsDouble();

Term

Interface Iterator

Definition

public interface Iterator {
     boolean hasNext();
     E next();
     void remove(); //optional
}

Term

Remoção de elementos específicos.

Definition

static void filter(Collection c) {
     for (Iterator it = c.iterator(); it.hasNext(); )
       if (!cond(it.next()))
           it.remove();
}

Term

Encapsular diferentes tipos de iteração

Definition

template class FilteringListTraverser {
        public: FilteringListTraverser(List* aList);
        bool Traverse();
        protected: virtual bool ProcessItem(const Item&) = 0;
        virtual bool TestItem(const Item&) = 0;
private: ListIterator _iterator;
}
template void FilteringListTraverser::Traverse () {
      bool result = false;
     for ( _iterator.First();
     !_iterator.IsDone();
     _iterator.Next() ) {
           if (TestItem(_iterator.CurrentItem())) {
              result = ProcessItem(_iterator.CurrentItem());
                 if (result == false) {
                       break;
                  }
          }
  }
  return result;

}

Term

Lista e Iterator interfaces.

Definition

template class List {
         public: List(long size = DEFAULT_LIST_CAPACITY);
         long Count() const;
         Item& Get(long index) const;
         // ...
}
template class Iterator {
         public: virtual void First() = 0;
         virtual void Next() = 0;
        virtual bool IsDone() const = 0;
        virtual Item CurrentItem() const = 0;
        protected: Iterator();
}

Term

Usando iterators para tornar a impressão mais fácil

Definition

Void PrintEmployees (Iterator& i){

         for(i.First(); !i.IsDone(); i.Next()){  

                i.CurrentItem()->Print();
          }
}

Term

Certificando-se iterators são apagados

Definition

template class IteratorPtr {
            public: IteratorPtr(Iterator* i): _i(i) { }
           ~IteratorPtr() {delete _i; }
           Iterator* operator->() { return _i; }
           Iterator& operator*() { return *_i; }
           private: IteratorPtr(const IteratorPtr&);
          IteratorPtr& operator=(const IteratorPtr&);
          private: Iterator* _i;
}
AbstractList* employees;
// ...

IteratorPtr iterator(employees->CreateIterator());
PrintEmployees(*iterator);

Supporting users have an ad free experience!