�L���[�\����Java�Ŏ������ăW�F�l���b�N�^�𗝉������F�y�����ŁzEclipse�ł͂��߂�v���O���~���O�i19�j�i1/3 �y�[�W�j

���ꂩ��v���O���~���O���w�K���������AJava�͓�����łƂ��‚��Â炢�Ƃ������̂��߂�Java�v���O���~���O������A�ڂł��B�ŐV��Eclipse 3.4��Java 6���g���啝�ɏ��ʂ𑝂₵���A�A�ځuEclipse�ł͂��߂�v���O���~���O�v�̉����łƂȂ�܂�

» 2010�N10��14�� 00��00�� ���J
[���R���j�C������ЃK�����I]

���S�Ȃ܂܃R���N�V�����t���[�����[�N�𗘗p���邽�߂�

�@����́A�u�W�F�l���b�N�X�iGenerics�j�v�ɂ‚��Đ������܂��B

�@Java�ł́A���ׂĂ��N���X��java.lang.Object�^����h�����Ă���̂ŁA�ǂ̃I�u�W�F�N�g��Object�^�Ƃ��Ĉ����΁A���鏈�������܂��܂ȃf�[�^�^�ɑ΂��ēK�p�ł��܂��B

�@�������A���̏ꍇ�͌^�ɂ‚��Ĉ��S�ł��邱�Ƃ�ۏ؂��邽�߂ɁA�����Ń`�F�b�N�R�[�h���L�q������L���X�g������K�v������܂��B����܂ł̘A�ڂł́Ajava.util.List�̂悤�ȁujava.util.Collection�v�C���^�[�t�F�C�X�����������A������u�R���N�V�����t���[�����[�N�v�𗘗p����ۂɂ́AObject�^�Ƃ��ăf�[�^��}�����A�f�[�^�����o�����Ƃ��́A�O��́u�����^�t������Ă���Java�̗����ɕK�C�́g�^�ϊ��h�v�ʼn�������u�_�E���L���X�g�v���s���Ȃǂ��Ă��܂����B

�@�W�F�l���b�N�X�𗝉����Ďg����悤�ɂȂ�ƁA�����������R�[�h���L�q���Ȃ��Ă��ςނ悤�ɂȂ�܂��B���ɕ֗��ȋ@�\�ł����A�^�ɂ‚��Ĉ��S�Ȃ܂܃R���N�V�����t���[�����[�N�𗘗p����ɂ͕K�{�̋@�\�ł�����A���Ўg�����Ȃ���悤�ɂȂ�܂��傤�B

�@Eclipse��Java�v���O���~���O���n�߂鏀�����܂��̕��́A�A�ڑ�1��́uEclipse 3.4�Œ��ȒPJava�v���O���~���O��b�����v�ŏ��������Ă����Ă��������B

�m���Ă��܂����H �f�[�^�\���u�L���[�v�H

�@�W�F�l���b�N�X�ɂ‚��ė������邽�߂ɁA�u�L���[�iQueue�A�҂��s��j�v�Ƃ������f�[�^�\�����������Ă݂܂��傤�B�L���[���g���ƁA���N�G�X�g���󂯕t�������ԂɎ��s����v���O�������ȒP�Ɏ����ł���悤�ɂȂ�܂��B�v���O���}�Ȃ�A���З������Ă��������m���ł��B

�L���[�̎g���ǂ���

�@Web�T�[�r�X�̃v���b�g�t�H�[���ƂȂ�\�t�g�E�F�A�Ȃǂł́A�u���[�U�[�����p����Web�u���E�U����̃��N�G�X�g���󂯕t���āA�󂯕t�������Ԃɏ��������s�������X�|���X��Ԃ��v�Ƃ������������K�v�ł��B

�@�܂�GUI�v���O�����̃v���b�g�t�H�[���ƂȂ�\�t�g�E�F�A�ł́A���[�U�[����������}�E�X�C�x���g��L�[���̓C�x���g�����ԂɎ󂯕t���āA�󂯕t�������ԂɎ��s����Ƃ������������K�v�ł��B�����������ꍇ�ɁA�L���[�����p�ł��܂��B

�L���[��3�‚̓���

  • �y1�z�f�[�^�����邽�߂����\�b�h�ƁA�f�[�^�����o�����߂̃��\�b�h������

�@���̃f�[�^�\���ł́A�f�[�^�����邽�߂́uenqueue�v���\�b�h�ƁA�f�[�^�����o�����߂́udequeue�v���\�b�h�������܂��B�f�[�^���o�����ꂷ�郁�\�b�h�̖��O�́A�ق��̂��̂��t�����Ă��邱�Ƃ�����܂��B�Ⴆ�΁A�uinsert�v�uremove�v���g���邱�Ƃ�����܂����A�uadd�v�udelete�v���g���邱�Ƃ�����܂��B

�@�uqueue�v�΂���ɂȂ��Ă��܂��܂����A�{�e�ł́uenqueue�v�udequeue�v���g�����Ƃɂ��܂��B

  • �y2�z�����̃f�[�^��ێ��ł���

�@�܂��L���[�ł́A�����̃f�[�^��ێ��ł��܂��B�����̃f�[�^��ێ��ł���f�[�^�\���Ƃ��Ắu�z���v�Ȃǂ�����܂��B�z��́A�Y�������w�肷�邱�ƂŁA�l��ێ�����ꏊ��ǂ�����l�����o�������w��ł��܂������A�L���[�ł́A�������������Ƃ͂ł��܂���B�f�[�^����ꂽ���ɂ����f�[�^�����o�����Ƃ��ł��Ȃ�����K�v���Ȃ��̂ł��B

  • �y3�z�g�������ǂ����郁�\�b�h�����‚��Ƃ�����

�@�g�������ǂ����邽�߂ɁA�u�L���[�ɒl�������Ă���̂��v�u�L���[�ɒl�����邱�Ƃ��ł��邩�v���m�F�ł���悤�ȃ��\�b�h���������邱�Ƃ�����܂��B

�L���[�̓���

�@���̐}�ł́A�L���[�̓������̓I�Ɏ����Ă��܂��B

�}�@�L���[�\���̓��� �}�@�L���[�\���̓���

�@1��}������ƁA�L���[�ɂ�1������܂��B2�A3�Ə��ɑ}������ƁA���̏��Ƀf�[�^�̓L���[�ɓ���܂��B�g���o���h������ƁA�擪��1�����o���܂��B���̌��4��}������ƁA�Ō��4���lj�����܂��B���Ɏ��o����2�񑱂���ƁA2�A3�����o���܂��B����́A�}���������ɂȂ��Ă��܂��B

�y����z�L���[�\����Java����Ŏ����ł��܂����H

�@����ł́A�u�ő�5�‚܂ŁA0�ȏ��int�^�̒l��ێ��ł���A�L���[���g�����v���O�����v�ɂ‚��čl���Ă݂܂��傤�B

�@�N���X�uQueue�v�̓L���[�\����\���Ă��܂��B�t�B�[���h�Ƃ��ẮA�L���[�ɂǂꂾ���̗v�f����ۑ��ł��邩��\���萔�uSIZE�v�A�l�����邽�߂̔z��uvalues�v�A�擪�ɂ���f�[�^�̈ʒu��\���ϐ��uhead�v�A�����ɂ���f�[�^�̈ʒu��\���ϐ��utail�v��p�ӂ��܂��B

�@���\�b�h�Ƃ��Ắuenqueue�v�udequeue�v��p�ӂ��܂��B�L���[���󂩂ǂ����𒲂ׂ�uisEmpty�v���\�b�h���p�ӂ��܂��B

�f�[�^������enqueue���\�b�h

�@�f�[�^������ۂɂ́A�p�ӂ��Ă���values�֏��Ԃɓ���Ă����΂����̂ŁA�P���ɍl����ƁA���̂悤�ȃR�[�h�ɂȂ�܂��B

    boolean enqueue(int data) {
        if (data < 0) return false;
        if (tail > SIZE) {
            return false;
        }
        values[tail++] = data;
        tail = tail % values.length;
        return true;
    }

�@data��0�ȏ�̒l�Ȃ̂ŁA������`�F�b�N���܂��B���ɁA�������w���Ă���tail���g���āA�u�z��ցA����ȏ�f�[�^�������邩�ǂ����v�𔻒肵�܂��B������Ȃ��Ȃ�false�A�������Ȃ�true��Ԃ��悤�ɂ��܂��B�f�[�^��������ꍇ�́A�uvalues[tail]�v�֒l�����āAtail��1�������܂��B1�s�ŕ\�����߂Ɂuvalues[tail++] = data;�v�Ƃ��܂��B

�f�[�^�����o��dequeue���\�b�h

�@�f�[�^�����o�����\�b�h�ɂ‚��čl���Ă݂܂��傤�B��قǂ�enqueue���\�b�h�ƑΉ����čl����Ȃ�A���̂悤�ȃR�[�h�ɂȂ�܂��B

    int dequeue() {
        int data = -1;
        if (tail != head) {
            data = values[head++];
        }
        return data;
    }

�@�L���[�Ƀf�[�^���Ȃ��ꍇ�́Ahead��tail�̈ʒu����v���Ă���̂ŁA���̏ꍇ�́u-1�v��Ԃ��܂��B�����łȂ��ꍇ�́Ahead���擪���w���Ă���킯�ł�����Avalues[head]����l�����o���Ahead��1�������܂��B�����āA���o�����l��Ԃ��܂��B���̂悤�ɂ��邱�ƂŁA���p���鑤�ł́u-1�v���Ԃ��ė�����A�L���[�Ƀf�[�^���Ȃ��Ɣ���ł��܂��B

�L���[���󂩂ǂ�����Ԃ�isEmpty���\�b�h

�@�L���[���󂩂ǂ�����Ԃ�isEmpty���\�b�h�̓L���[�Ƀf�[�^���Ȃ��ꍇ�́Ahead��tail�̈ʒu����v���܂�����A���̂悤�ɂȂ�܂��B

    boolean isEmpty() {
        return (tail == head);
    }

�z��̐擪�̃f�[�^�̈���ė��p����z��̐擪�̃f�[�^�̈���ė��p����

�@�ȏオ��{�ł����A���̂܂܂ł͔z��̍Ō�̗v�f�Ƀf�[�^����ꂽ��A����ȏ�g���Ȃ��Ȃ��Ă��܂��܂��B�����ŁA�z��̐擪�̗v�f�ɂ���f�[�^�����o����Ă���ꍇ�́A���̗̈�͍ė��p�ł��܂��B�ł�����A���������ɗ��p���邱�Ƃ��l���Ă݂܂��傤�B

�@����ƁA���̂悤�ȃR�[�h�ɂȂ�܂��B�����ł́AQueue�N���X�𗘗p����T���v����main���\�b�h�Ƃ��Ď������Ă��܂��B

package sample19;
 
public class Sample01 {
    static class Queue {
        final int SIZE = 5;
        private int[] values = new int[SIZE+1];
        private int head = 0;
        private int tail = 0;
        boolean enqueue(int data) {
            if (data < 0) return false;
            if (((tail + 1) % values.length) == head) {
                return false;
            }
            values[tail++] = data;
            tail = tail % values.length;
            return true;
        }
        int dequeue() {
            int data = -1;
            if (tail != head) {
                data = values[head++];
                head = head % values.length;
            }
            return data;
        }
        boolean isEmpty() {
            return (tail == head);
        }
    }
 
    public static void main(String[] args) {
        Queue q = new Queue();
        q.enqueue(1);
        q.enqueue(2);
        q.enqueue(3);
        q.enqueue(4);
        q.enqueue(5);
        q.enqueue(6); // �e�ʃI�[�o�[
        System.out.println(q.dequeue()); // 1
        q.enqueue(7); // �󂫂�����̂Ńf�[�^�ێ�
        while (!q.isEmpty()) {
            int data = q.dequeue();
            System.out.print(data+",");
        }
        // �� 2,3,4,5,7, �o��
        System.out.println("");
    }
}
sample19/Sample01.java

�@���̃v���O�����ł́A��]���v�Z���邽�߂̉��Z�q�u%�v�����܂����p���Ă��܂��Bhead��tail���z��̗v�f���𒴂���l�ƂȂ�ꍇ�́A0�ɖ߂�悤�Ɍv�Z�����Ă��܂��B�z�񂪋�Ȃ̂����肷�鏈���͕ς��Ă��܂��񂪁A�ő�e�ʂɒB���Ă��邩�ǂ����𔻒肷�邽�߂̏����́u((tail + 1) % values.length) != head�v�Ƃ��Ă��܂��B

�@�L���[����̏ꍇ�ƍő�e�ʂɒB���Ă���ꍇ�Ƃ̋�ʂ��ł���悤�ɁA�z��̗v�f���́A�L���[�ŕۑ��ł���l�̍ő�l����1�傫�����Ă���܂��B�����l�ɂ��Ă��܂��ƁA�����̋�ʂ��t���Ȃ��Ȃ�܂��B

�L���[�̓�����m�F����main���\�b�h

�@���̃L���[�̓�����m�F���邽�߂ɁAmain���\�b�h�ł́A�u1�v����u7�v�܂ŏ��ԂɃf�[�^���L���[�֓���Ă��܂��B�������A�r���́u6�v����ꂽ�Ƃ��ɗe�ʃI�[�o�[�ƂȂ�̂ŁA��x�����L���[����f�[�^�����o���Ă��܂��B���̂Ƃ��擪�́u1�v�����o����܂��B���ꂩ��A�u7�v�����Ă��܂��B�Ō�ɁA�L���[����ɂȂ�܂Ńf�[�^�����o���Ă��܂��B

���s����

�@���ۂ̎��s���ʂ͎��̂Ƃ���ł��B�z��ǂ���6�͓���܂���B�ق��̒l�͑}���������Ԃǂ���Ɏ��o���Ă��܂��B

1
2,3,4,5,7,
Sample01.java�̎��s����

�L���[�ł��܂��܂ȃf�[�^�^���g�����߂�

�@���āA�L���[�ɂ‚��Ă̐����͈ȏ�ł����A���̃f�[�^�\���ɂ‚��ė����ł����ł��傤���B�L���[�̗��֐��ɂ‚��Ă͂��܂蕪����Ȃ�������������܂��񂪁A�����ł́A�u�����������f�[�^�\�����悭�g�����ʂ�����v�Ƃ������Ƃ����o���Ă����΂����ł��傤�B

�@���y�[�W����́A�L���[�\���̃R�[�h��3�i�K�ʼn������āA�W�F�l���b�N�X����������ƁA�������m���ɗ������Ă����܂��B

�@�@�@�@�@�@ 1|2|3 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft �� Windows�őO��2025
AI for �G���W�j�A�����O
���[�R�[�h�^�m�[�R�[�h �Z���g���� by ��IT - IT�G���W�j�A���r�W�l�X�̒��S�Ŋ��􂷂�g�D��
Cloud Native Central by ��IT - �X�P�[���u���Ȕ\�͂�g�D��
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B