Maison  >  Article  >  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 ?

王林
王林avant
2024-02-12 14:27:05756parcourir

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);
        }

    }
});

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();
        }
    }
});

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer