>  기사  >  지정된 범위의 11자리 일련번호를 생성하는 방법은 무엇입니까?

지정된 범위의 11자리 일련번호를 생성하는 방법은 무엇입니까?

王林
王林앞으로
2024-02-12 14:27:05756검색

질문 내용

주어진 코드를 사용하여 목록 보기에서 특정 범위의 11자리까지 일련번호를 생성하고 있습니다. 최대 10자리까지 생성되는 시퀀스는 0333624140 ~ 0333624160(예: 0333624140,0333624141,0333624142,0333624143 등)과 같지만 원하는 값을 03336241441 ~ 0333624와 같이 11자리로 변경하면 1450 그런 다음 앱이 충돌합니다.

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

저는 스스로 그리고 모든 사람의 도움을 받아 필요한 솔루션을 알아냈습니다. 다른 사람들도 이에 대한 정보를 얻을 수 있도록 여기에 표시합니다. 어찌됐든 진심으로 감사드립니다~

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

이 코드를 작성하는 방법에 대한 완전히 망가진 아이디어입니다. 11자리 숫자를 모두 포함할 수 있는 배열을 만듭니다. 110억 개의 항목입니다. 각 객체가 8바이트(값에 4바이트, 참조에 4바이트)만 차지하더라도 이는 880억 바이트, 즉 약 9.5GB입니다. 그것은 결코 기억에 남지 않을 것이고, 그 일이 일어나기 전에는 당신은 굉장해질 것입니다.

이를 수행하는 방법에는 여러 가지가 있습니다. 어댑터는 연속 범위이므로 모든 항목을 포함하는 배열이 필요하지 않으며 시작 및 끝 인덱스만 필요하며 각 인덱스의 값은 시작 인덱스 및 오프셋을 기반으로 계산할 수 있습니다. 그러나 모든 값의 목록을 갖는 것은 작동하지 않습니다.

위 내용은 지정된 범위의 11자리 일련번호를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제