Maison > Java > Comment générer une plage spécifiée de numéros de série à 11 chiffres ?

Comment générer une plage spécifiée de numéros de série à 11 chiffres ?

王林
Libérer: 2024-02-12 14:27:05
avant
794 Les gens l'ont consulté

Contenu de la question

J'utilise le code donné pour générer des numéros de série dans une vue de liste jusqu'à une plage spécifique de 11 chiffres. Jusqu'à dix chiffres, la séquence générée est comme 0333624140 à 0333624160 (par exemple 0333624140,0333624141,0333624142,0333624143 etc.) mais si nous changeons la valeur souhaitée à 11 chiffres comme 03336241441 à 033362414 50 Ensuite, l'application plante.

btngenerate.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int value1;
        int value2;
        value1 = Integer.parseInt(txtfirst.getText().toString());
        value2 = Integer.parseInt(txtsecond.getText().toString());
        for(int i=value1;i<=value2;i++){
            list.add(""+i);
            li.setAdapter(arrayAdapter);
        }

    }
});
Copier après la connexion

Solution

J'ai trouvé la solution dont j'avais besoin par moi-même et avec l'aide de tous. Je le montre ici pour que d'autres puissent obtenir des informations à ce sujet. Quoi qu'il en soit, je vous remercie du fond du cœur~

btngenerate.setOnClickListener(new View.OnClickListener() {
    @SuppressLint("DefaultLocale")
    @Override
    public void onClick(View view) {
        try {
            long value1;
            long value2;
            value1 = Long.parseLong(txtfirst.getText().toString());
            value2 = Long.parseLong(txtsecond.getText().toString());

            for(Long i = (Long) value1; i<=value2; i++) {
                list.add(String.format("%011d", i));
                li.setAdapter(arrayAdapter);
            }

        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
    }
});
Copier après la connexion

C'est une idée complètement erronée quant à la façon d'écrire ce code. Vous créez un tableau pouvant contenir tous les nombres de 11 chiffres. Cela représente 11 milliards d’articles. Même si chaque objet n'occupe que 8 octets (4 pour la valeur et 4 pour la référence. Ce serait plus que cela), cela fait 88 milliards d'octets, soit environ 9,5 Go. Cela ne rentrera jamais dans la mémoire, avant cela vous serez loin.

Il existe de nombreuses façons de procéder. Votre adaptateur n'a pas besoin d'un tableau contenant chaque élément, puisqu'il s'agit d'une plage contiguë, il n'a besoin que de l'index de début et de fin, et la valeur de chaque index peut être calculée en fonction de l'index de début et du décalage. Mais avoir une liste de chaque valeur ne fonctionne pas.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal