Você está aqui: Java ::: Coleções (Collections) ::: ArrayList |
Java Collections para iniciantes - Arrays (vetores) ou a ArrayList? Qual devo usar?Quantidade de visualizações: 15977 vezes |
Uma das perguntas mais frequentes que os usuários do nosso site nos fazem é aquela sobre o uso de simples arrays (vetores e matrizes) ou objetos da classe ArrayList. Se o número de elementos for fixo ou você precisar de muita eficiência ao lidar com tipos primitivos, então arrays podem ser a melhor escolha. Porém, muitos problemas envolvendo o armazenamento de dados requerem estruturas de dados que possam ser redimensionadas de acordo com a necessidade do algorítmo. Neste caso, uma ArrayList (ou qualquer uma das outras classes Collections) pode ser a escolha certa. Veja um trecho de código para ficar mais fácil o entendimento: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ int valores[] = {4, 12, 8, 5, 13}; System.out.println("Primeiro elemento no vetor: " + valores[0]); } } Ao executar este código nós teremos o seguinte resultado: Primeiro elemento no vetor: 4 Como podemos ver neste exemplo, um array (nesse caso um vetor) possui um tamanho fixo, ou seja, o compilador não nos permite reduzir ou aumentar a quantidade de elementos em um vetor ou matriz criado a partir da notação de arrays. Assim, apesar de todas as facilidades que os arrays trazem consigo, este pode ser um empecilho para o tipo de aplicação que queremos desenvolver em um determinado momento. A classe ArrayList, por outro lado, possui tamanho variado. Isso quer dizer que seu tamanho é aumentado ou reduzido de acordo com as necessidades do seu código. Uma outra questão que diferencia arrays de ArrayList, é que não podemos armazenar tipos primitivos em um objeto da classe ArrayList. Se precisarmos fazer isso, o tipo primitivo deve ser colocado em uma classe encapsuladora, por exemplo, a classe Integer. Em algumas situações o compilador faz isso nos bastidores, e esta operação é chamada de auto-boxing. |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como gerar um vetor com valores igualmente espaçados usando a função linspace() da biblioteca NumPy do Python - Python NumPy para EngenhariaQuantidade de visualizações: 2242 vezes |
Em algumas situações nós precisamos de vetores e matrizes com valores igualmente espaçados entre um determinado intervalo. Para isso nós podemos usar a função linspace() da biblioteca NumPy do Python. Esta função exige, entre vários argumentos, o início e o fim do intervalo. Vamos ver um exemplo? Observe o trecho de código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos importar a biblioteca NumPy import numpy as np def main(): valores = np.linspace(2, 5, num=10) print("O vetor gerado foi: ", valores) if __name__== "__main__": main() Este código Python vai gerar o seguinte resultado: O vetor gerado foi: [2. 2.33333333 2.66666667 3. 3.33333333 3.66666667 4. 4.33333333 4.66666667 5. ] Note que informamos o valor inicial como 2 e o valor final como 5, e definimos a quantidade de elementos gerados como 10 (se omitida, 50 valores serão gerados). Se não quisermos que o valor final do intervalo seja incluído na amostra, basta informamos endpoint=False como argumento para a função linspace(). |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid do Delphi e tratar seu evento OnEditButtonClickQuantidade de visualizações: 11679 vezes |
Em algumas situações gostaríamos de exibir um botão do tipo ellipsis (...) nas células de uma determinada coluna do TDBGrid. Este botão é exibido à direita da célula de edição do DBGrid e seu evento OnEditButtonClick pode ser disparado por meio da combinação Ctrl+Enter ou um click do mouse. Um dos usos mais frequentes do botão ellipsis é quando queremos chamar um formulário de pesquisa ou mais detalhes sobre o conteúdo atual da célula que está sendo editada. Siga os passos abaixo para adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid: a) Selecione a coluna desejada na lista Columns; b) Defina o valor cbsEllipsis para sua propriedade ButtonStyle; c) Escreva um gerenciador de eventos para o evento OnEditButtonClick do DBGrid. Veja no trecho de código a seguir como clicar no botão e exibir o conteúdo da célula (note que coloquei o botão ellipsis em uma coluna cujos células exibiam o valor do campo id de uma tabela livros): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm3.DBGrid1EditButtonClick(Sender: TObject); begin ShowMessage('O valor da célula que contém o botão é: ' + DBGrid1.SelectedField.AsString); end; Ao executar este código bastará entrar na célula e colocá-la em modo de edição. Automaticamente o botão ellipsis (...) será exibido. Clique no mesmo e verá uma mensagem parecida com: "O valor da célula que contém o botão é: 5." Caso queira que o botão ellipsis seja visível nas células o tempo todo, basta alterar o valor da opção dgAlwaysShowEditor para True. Esta opção é parte da propriedade Options do DBGrid. Esta dica foi escrita e testada no Delphi 2009. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Ordenação e Pesquisa (Busca) |
Exercícios Resolvidos de Python - Como usar a Ordenação da Bolha em Python para ordenar os valores de um vetor em ordem crescente ou decrescenteQuantidade de visualizações: 259 vezes |
Pergunta/Tarefa: A Ordenação da Bolha, ou ordenação por flutuação (literalmente "por bolha"), também chamada de Bubble Sort, é um algoritmo de ordenação dos mais simples. A ideia é percorrer o array diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo. No melhor caso, o algoritmo executa n operações relevantes, onde n representa o número de elementos do vetor. No pior caso, são feitas n2 operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados. Escreva um programa Python que declara, constrói um vetor de 10 inteiros e peça para o usuário informar os valores de seus elementos. Em seguida use a ordenação da bolha para ordenar os elementos em ordem crescente. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 84 Informe o valor para o índice 1: 23 Informe o valor para o índice 2: 9 Informe o valor para o índice 3: 5 Informe o valor para o índice 4: 11 Informe o valor para o índice 5: 3 Informe o valor para o índice 6: 50 Informe o valor para o índice 7: 7 Informe o valor para o índice 8: 2 Informe o valor para o índice 9: 73 O array informado foi: 84 23 9 5 11 3 50 7 2 73 O array ordenado é: 2 3 5 7 9 11 23 50 73 84 Veja a resolução comentada deste exercício usando Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): # vamos declarar e construir um vetor de 10 elementos valores = [0 for x in range(10)] # vamos pedir que o usuário informe os valores for i in range(0, len(valores)): valores[i] = int(input("Informe o valor para o índice {0}: ".format(i))) # vamos mostrar o vetor informado print("\nO array informado foi:\n\n") for i in range(0, len(valores)): print(valores[i], end=" ") # vamos ordenar os elementos do vetor usando a ordenação da bolha # laço externo de trás para frente for i in range(len(valores) - 1, 0, -1): for j in range(0, i): # laço interno vai no fluxo normal if valores[j] > valores[j + 1]: # temos que trocá-los de lugar temp = valores[j] valores[j] = valores[j + 1] valores[j + 1] = temp # vamos exibir o vetor já ordenado print("\n\nO array ordenado é:\n\n") for i in range(0, len(valores)): print(valores[i], end=" ") print("\n") if __name__== "__main__": main() |
jQuery ::: Dicas & Truques ::: Atributos ou Propriedades HTML |
Como obter valores dos atributos de um elemento HTML usando a função attr() do jQueryQuantidade de visualizações: 15533 vezes |
O exemplo abaixo mostra como obter os valores dos atributos de um elemento HTML usando a notação attr(). O retorno é uma string contendo o valor do atributo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <script type="text/javascript"> <!-- function obterAtributo(){ // Este exemplo mostra como obter o valor do // atributo value de uma caixa de texto com // o id "nome" var valor = $('#nome').attr("value"); window.alert(valor); } //--> </script> |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como ordenar os elementos de um vetor (array) usando a função qsort() da linguagem CQuantidade de visualizações: 590 vezes |
A função qsort() da linguagem C permite a ordenação dos elementos de um vetor (array ou matriz unidimensional) mediante o fornecimento de uma função auxiliar definida pelo usuário. Veja seu protótipo:void qsort(void *base, size_t num, size_t size, int(*comparator)(const void*, const void*)); Veja que só precisamos fornecer um ponteiro para o vetor a ser ordenado, a quantidade de elementos contidos no vetor, o tamanho em bytes de cada elemento e a função de comparação. No exemplo abaixo mostramos como ordenar um vetor contendo 9 valores inteiros: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> // função auxiliar que permite comparar dois valores // durante a ordenação int comparar(const void *a, const void *b){ return(*(int*)a - *(int*)b); } int main(int argc, char *argv[]) { int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; int i, tamanho = 9; // imprime o vetor sem a ordenação for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } // vamos ordenar o vetor usando qsort(valores, tamanho, sizeof(int), comparar); // imprime o vetor ordenado puts("\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } puts("\n"); system("pause"); return 0; } Ao executarmos este código C nós teremos o seguinte resultado: 4 6 2 8 1 9 3 0 11 0 1 2 3 4 6 8 9 11 Pressione qualquer tecla para continuar... |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |