public class MultiPixelPackedSampleModel extends SampleModel
MultiPixelPackedSampleModelã¯ã©ã¹ã¯ãåäžãã³ãåãããã€ã¡ãŒãžã衚çŸããè€æ°ã®åäžãµã³ãã«ã»ãã¯ã»ã«ã1ã€ã®ããŒã¿èŠçŽ ã«ããã¯ã§ããŸãã ãã¯ã»ã«ã¯ãè€æ°ã®ããŒã¿èŠçŽ ã«ãŸãããããšã¯ã§ããŸããã ããŒã¿åã¯ãDataBuffer.TYPE_BYTEãDataBuffer.TYPE_USHORTããŸãã¯DataBuffer.TYPE_INTã§ãã åãã¯ã»ã«ã¯2ã®ã¹ãä¹ã®ãããæ°ã§ãªããã°ãªããã2ã®ã¹ãä¹åã®ãã¯ã»ã«ãã1ã€ã®ããŒã¿èŠçŽ ã«ãŽã£ããåãŸããªããã°ãããŸããã ãã¯ã»ã«ã»ãããã»ã¹ãã©ã€ãã¯ã1ãã¯ã»ã«ãããã®ãããæ°ãšåãã§ãã èµ°æ»ç·ã¹ãã©ã€ãã¯ããŒã¿èŠçŽ å
ã«ãããæåŸã®ããã€ãã®ããŒã¿èŠçŽ ãæªäœ¿çšã®ãã¯ã»ã«ã§ããã£ã³ã°ãããŸãã ããŒã¿ã»ãããã»ãªãã»ããã¯ãDataBufferã®å
é ããæåã®ãã¯ã»ã«ãŸã§ã®ãããåäœã®ãªãã»ããã§ããããã¯ã»ã«ã»ãããã»ã¹ãã©ã€ãã®åæ°ã§ãã
次ã®ã³ãŒãäŸã¯ãDataBufferã®dataãããã¯ã»ã«x, yã®ããããæœåºããdataTypeåã®ããŒã¿èŠçŽ ã«ãã¯ã»ã«ã»ããŒã¿ãæ ŒçŽããŸãã
int dataElementSize = DataBuffer.getDataTypeSize(dataType);
int bitnum = dataBitOffset + x*pixelBitStride;
int element = data.getElem(y*scanlineStride + bitnum/dataElementSize);
int shift = dataElementSize - (bitnum & (dataElementSize-1))
- pixelBitStride;
int pixel = (element >> shift) & ((1 << pixelBitStride) - 1);
dataType, height, numBands, width| ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|
MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits) |
æå®ãããããŒã¿åãå¹
ãé«ããããã³1ãã¯ã»ã«ãããã®ãããæ°ãæã€
MultiPixelPackedSampleModelãæ§ç¯ããŸãã |
MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset) |
æå®ãããããŒã¿åãå¹
ãé«ãã1ãã¯ã»ã«ãããã®ãããæ°ãèµ°æ»ç·ã¹ãã©ã€ããããã³ããŒã¿ã»ãããã»ãªãã»ãããæã€
MultiPixelPackedSampleModelãæ§ç¯ããŸãã |
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
SampleModel |
createCompatibleSampleModel(int w, int h) |
æå®ãããå¹
ãšé«ããæã€æ°ãã
MultiPixelPackedSampleModelãäœæããŸãã |
DataBuffer |
createDataBuffer() |
ãã®
MultiPixelPackedSampleModelã«å¯Ÿå¿ããDataBufferãäœæããŸãã |
SampleModel |
createSubsetSampleModel(int[] bands) |
ãã®
MultiPixelPackedSampleModelã®ãã³ãã®ãµãã»ãããæã€æ°ããMultiPixelPackedSampleModelãçæããŸãã |
boolean |
equals(Object o) |
ãã®ãªããžã§ã¯ããšä»ã®ãªããžã§ã¯ããçãããã©ããã瀺ããŸãã
|
int |
getBitOffset(int x) |
èµ°æ»ç·ã®
xçªç®ã®ãã¯ã»ã«ãšããŠæ ŒçŽãããŠããããŒã¿èŠçŽ ã®ãªãã»ããããããæ°ã§è¿ããŸãã |
int |
getDataBitOffset() |
ããŒã¿ã»ãããã»ãªãã»ããããããæ°ã§è¿ããŸãã
|
Object |
getDataElements(int x, int y, Object obj, DataBuffer data) |
transferTypeåã®ããªããã£ãé
åå
ã®1ã€ã®ãã¯ã»ã«ã®ããŒã¿ãè¿ããŸãã
|
int |
getNumDataElements() |
getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)ã¡ãœããããã³setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)ã¡ãœããã䜿ã£ãŠ1ãã¯ã»ã«è»¢éããã®ã«å¿
èŠãªããŒã¿èŠçŽ ã®æ°ãè¿ããŸãã |
int |
getOffset(int x, int y) |
ãã¯ã»ã«(x, y)ã®ããŒã¿é
åèŠçŽ ã§ã®ãªãã»ãããè¿ããŸãã
|
int[] |
getPixel(int x, int y, int[] iArray, DataBuffer data) |
inté
åã®å
é èŠçŽ ã®ãæå®ããã1ã€ã®ãã³ãã®ãã¯ã»ã«ãè¿ããŸãã |
int |
getPixelBitStride() |
ãã¯ã»ã«ã»ãããã»ã¹ãã©ã€ãããããæ°ã§è¿ããŸãã
|
int |
getSample(int x, int y, int b, DataBuffer data) |
(x, y)ã«äœçœ®ãããã¯ã»ã«ã®ãæå®ããããã³ãå
ã®ãµã³ãã«ã
intãšããŠè¿ããŸãã |
int[] |
getSampleSize() |
ãã¹ãŠã®ãã³ãã®ãµã³ãã«ãããã®ãããæ°ãè¿ããŸãã
|
int |
getSampleSize(int band) |
æå®ããããã³ãã®ãµã³ãã«ãããã®ãããæ°ãè¿ããŸãã
|
int |
getScanlineStride() |
èµ°æ»ç·ã¹ãã©ã€ããè¿ããŸãã
|
int |
getTransferType() |
getDataElementsã¡ãœãããšsetDataElementsã¡ãœããã«ãããã¯ã»ã«ã転éããããã«äœ¿ãTransferTypeãè¿ããŸãã |
int |
hashCode() |
ãªããžã§ã¯ãã®ããã·ã¥ã»ã³ãŒãå€ãè¿ããŸãã
|
void |
setDataElements(int x, int y, Object obj, DataBuffer data) |
æå®ããã
DataBufferã®1ã€ã®ãã¯ã»ã«ã®ããŒã¿ããTransferTypeåã®ããªããã£ãé
åããèšå®ããŸãã |
void |
setPixel(int x, int y, int[] iArray, DataBuffer data) |
inté
åãå
¥åãšããDataBufferã®ãã¯ã»ã«ãèšå®ããŸãã |
void |
setSample(int x, int y, int b, int s, DataBuffer data) |
intãå
¥åãšããDataBufferã®(x, y)ã«äœçœ®ãããã¯ã»ã«ã®ãæå®ããããã³ãã®ãµã³ãã«ãèšå®ããŸãã |
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getSamples, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setPixels, setSample, setSample, setSamples, setSamples, setSamplespublic MultiPixelPackedSampleModel(int dataType,
int w,
int h,
int numberOfBits)
MultiPixelPackedSampleModelãæ§ç¯ããŸããdataType - ãµã³ãã«æ ŒçŽçšã®ããŒã¿åœ¢åŒw - èšè¿°ãããã€ã¡ãŒãžã»ããŒã¿ã®é åã®å¹
(ãã¯ã»ã«åäœ)h - èšè¿°ãããã€ã¡ãŒãžã»ããŒã¿ã®é åã®é«ã(ãã¯ã»ã«åäœ)numberOfBits - ãã¯ã»ã«ããšã®ãããæ°IllegalArgumentException - dataTypeãDataBuffer.TYPE_BYTEãDataBuffer.TYPE_USHORTããŸãã¯DataBuffer.TYPE_INTã®ãããã§ããªãå Žåpublic MultiPixelPackedSampleModel(int dataType,
int w,
int h,
int numberOfBits,
int scanlineStride,
int dataBitOffset)
MultiPixelPackedSampleModelãæ§ç¯ããŸããdataType - ãµã³ãã«æ ŒçŽçšã®ããŒã¿åœ¢åŒw - èšè¿°ãããã€ã¡ãŒãžã»ããŒã¿ã®é åã®å¹
(ãã¯ã»ã«åäœ)h - èšè¿°ãããã€ã¡ãŒãžã»ããŒã¿ã®é åã®é«ã(ãã¯ã»ã«åäœ)numberOfBits - ãã¯ã»ã«ããšã®ãããæ°scanlineStride - ã€ã¡ãŒãžã»ããŒã¿ã®èµ°æ»ç·ã¹ãã©ã€ãdataBitOffset - èšè¿°ãããŠããã€ã¡ãŒãžã»ããŒã¿é åã®ããŒã¿ã»ãããã»ãªãã»ããRasterFormatException - 1ãã¯ã»ã«ãããã®ãããæ°ã2ã®ã¹ãä¹ã§ãªãå Žåããããã¯2ã®ã¹ãä¹åã®ãã¯ã»ã«ã1ããŒã¿èŠçŽ ã«åãŸããªãå ŽåãIllegalArgumentException - wãŸãã¯hã0以äžã§ããå ŽåIllegalArgumentException - dataTypeãDataBuffer.TYPE_BYTEãDataBuffer.TYPE_USHORTããŸãã¯DataBuffer.TYPE_INTã®ãããã§ããªãå Žåpublic SampleModel createCompatibleSampleModel(int w, int h)
MultiPixelPackedSampleModelãäœæããŸãã æ°ããMultiPixelPackedSampleModelã®ã¹ãã¬ãŒãžã»ããŒã¿åãš1ãã¯ã»ã«ãããã®ãããæ°ã¯ããã®MultiPixelPackedSampleModelãšåãã§ãã createCompatibleSampleModelãã¯ã©ã¹SampleModelw - æå®ãããå¹
h - æå®ãããé«ãMultiPixelPackedSampleModelãšã¹ãã¬ãŒãžã»ããŒã¿åããã³1ãã¯ã»ã«ãããã®ãããæ°ãåãSampleModelãIllegalArgumentException - wãŸãã¯hã0以äžã§ããå Žåpublic DataBuffer createDataBuffer()
MultiPixelPackedSampleModelã«å¯Ÿå¿ããDataBufferãäœæããŸãã DataBufferãªããžã§ã¯ãã®ããŒã¿åãšãµã€ãºã¯ããã®MultiPixelPackedSampleModelãšåãã§ãã DataBufferã¯1ã€ã®ãã³ã¯ãæã¡ãŸãã createDataBufferãã¯ã©ã¹SampleModelMultiPixelPackedSampleModelãšããŒã¿åããã³ãµã€ãºãåãDataBufferãpublic int getNumDataElements()
getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)ã¡ãœããããã³setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)ã¡ãœããã䜿ã£ãŠ1ãã¯ã»ã«è»¢éããã®ã«å¿
èŠãªããŒã¿èŠçŽ ã®æ°ãè¿ããŸãã MultiPixelPackedSampleModelã®å Žåã¯1ã«ãªããŸãã getNumDataElementsãã¯ã©ã¹SampleModelSampleModel.getDataElements(int, int, Object, DataBuffer), SampleModel.getDataElements(int, int, int, int, Object, DataBuffer), SampleModel.setDataElements(int, int, Object, DataBuffer), SampleModel.setDataElements(int, int, int, int, Object, DataBuffer), SampleModel.getTransferType()public int[] getSampleSize()
getSampleSizeãã¯ã©ã¹SampleModelpublic int getSampleSize(int band)
getSampleSizeãã¯ã©ã¹SampleModelband - æå®ããããã³ãpublic int getOffset(int x,
int y)
x - æå®ããããã¯ã»ã«ã®X座æšy - æå®ããããã¯ã»ã«ã®Y座æšpublic int getBitOffset(int x)
xçªç®ã®ãã¯ã»ã«ãšããŠæ ŒçŽãããŠããããŒã¿èŠçŽ ã®ãªãã»ããããããæ°ã§è¿ããŸãã ãã®ãªãã»ããã¯ããã¹ãŠã®èµ°æ»ç·ã§åãã§ãã x - æå®ããããã¯ã»ã«public int getScanlineStride()
MultiPixelPackedSampleModelã®èµ°æ»ç·ã¹ãã©ã€ããpublic int getPixelBitStride()
MultiPixelPackedSampleModelã®pixelBitStrideãpublic int getDataBitOffset()
MultiPixelPackedSampleModelã®dataBitOffsetãpublic int getTransferType()
getDataElementsã¡ãœãããšsetDataElementsã¡ãœããã«ãããã¯ã»ã«ã転éããããã«äœ¿ãTransferTypeãè¿ããŸãã TransferTypeã¯ãã¹ãã¬ãŒãžã»ããŒã¿åãšåãã§ããç°ãªã£ãŠããŠãããŸããŸããã TransferTypeã¯ãDataBuffer.TYPE_BYTEãDataBuffer.TYPE_USHORTããŸãã¯DataBuffer.TYPE_INTã®ããããã«ãªããŸãã getTransferTypeãã¯ã©ã¹SampleModelSampleModel.getDataElements(int, int, Object, DataBuffer)ãSampleModel.getDataElements(int, int, int, int, Object, DataBuffer)ãSampleModel.setDataElements(int, int, Object, DataBuffer)ãSampleModel.setDataElements(int, int, int, int, Object, DataBuffer)ãSampleModel.getNumDataElements()ãDataBufferpublic SampleModel createSubsetSampleModel(int[] bands)
MultiPixelPackedSampleModelã®ãã³ãã®ãµãã»ãããæã€æ°ããMultiPixelPackedSampleModelãçæããŸãã MultiPixelPackedSampleModelã¯ãã³ãã1ã€ããæããªãã®ã§ãbandsåŒæ°ã¯é·ã1ã§ãŒãçªç®ã®ãã³ãã瀺ãå¿
èŠããããŸãã createSubsetSampleModelãã¯ã©ã¹SampleModelbands - æå®ããããã³ãMultiPixelPackedSampleModelã®ãã³ãã®ãµãã»ãããæã€æ°ããSampleModelãRasterFormatException - èŠæ±ããããã³ãæ°ã1ã§ãªãå ŽåãIllegalArgumentException - wãŸãã¯hã0以äžã§ããå Žåpublic int getSample(int x,
int y,
int b,
DataBuffer data)
intãšããŠè¿ããŸãã 座æšãå¢çå
ã«ãªãå Žåã¯ãArrayIndexOutOfBoundsExceptionãã¹ããŒãããŸãã getSampleãã¯ã©ã¹SampleModelx - æå®ããããã¯ã»ã«ã®X座æšy - æå®ããããã¯ã»ã«ã®Y座æšb - è¿ããããã³ã(0ãšèŠãªãããŸã)data - ã€ã¡ãŒãžã»ããŒã¿ãæ ŒçŽããDataBufferArrayIndexOutOfBoundsException - æå®ããã座æšãç¯å²å€ã«ããå ŽåãsetSample(int, int, int, int, DataBuffer)public void setSample(int x,
int y,
int b,
int s,
DataBuffer data)
intãå
¥åãšããDataBufferã®(x, y)ã«äœçœ®ãããã¯ã»ã«ã®ãæå®ããããã³ãã®ãµã³ãã«ãèšå®ããŸãã 座æšãå¢çå
ã«ãªãå Žåã¯ãArrayIndexOutOfBoundsExceptionãã¹ããŒãããŸãã setSampleãã¯ã©ã¹SampleModelx - æå®ããããã¯ã»ã«ã®X座æšy - æå®ããããã¯ã»ã«ã®Y座æšb - è¿ããããã³ã(0ãšèŠãªãããŸã)s - intã®å
¥åãµã³ãã«data - ã€ã¡ãŒãžã»ããŒã¿ã®æ ŒçŽå
ã®DataBufferArrayIndexOutOfBoundsException - 座æšãç¯å²å€ã«ããå ŽåãgetSample(int, int, int, DataBuffer)public Object getDataElements(int x, int y, Object obj, DataBuffer data)
MultiPixelPackedSampleModelã®å Žåãé
åã¯1ã€ã®èŠçŽ ãæã¡ãåã¯1ã€ã®ãã¯ã»ã«ãæ ŒçŽã§ããDataBuffer.TYPE_BYTEãDataBuffer.TYPE_USHORTããŸãã¯DataBuffer.TYPE_INTã®ãã¡ã®æå°ã®ãã®ã«ãªããŸãã äžè¬ã«ãobjã¯nullã§æž¡ãããã®ã§ãObjectã¯èªåçã«äœæãããæ£ããåºæ¬ããŒã¿åã«ãªããŸãã
次ã®ã³ãŒãã¯ãMultiPixelPackedSampleModel mppsm1ã«ãã£ãŠã¹ãã¬ãŒãžã»ã¬ã€ã¢ãŠããèšè¿°ãããŠããDataBuffer db1ãããMultiPixelPackedSampleModel mppsm2ã«ãã£ãŠã¹ãã¬ãŒãžã»ã¬ã€ã¢ãŠããèšè¿°ãããŠããDataBuffer db2ãžã1ãã¯ã»ã«ã®ããŒã¿ã転éããäŸã§ãã ãã®è»¢éæ¹æ³ã¯ãgetPixelãŸãã¯setPixelãäœ¿ãæ¹æ³ãããéåžžå¹ççã§ãã
MultiPixelPackedSampleModel mppsm1, mppsm2;
DataBufferInt db1, db2;
mppsm2.setDataElements(x, y, mppsm1.getDataElements(x, y, null,
db1), db2);
SampleModelsã®ãã³ãæ°ãåãã§ã察å¿ãããã³ãã®ãµã³ãã«ãããã®ãããæ°ãåãã§ãTransferTypeãåãã§ããå Žåã2ã€ã®DataBuffer/SampleModelãã¢éã®è»¢éã«ã¯ãgetDataElements/setDataElementsã䜿çšããã®ãé©åã§ãã
objãnullã§ãªãå Žåã¯ãTransferTypeåã®ããªããã£ãé
åã«ãªããŸãã ããã§ãªãå Žåã¯ãClassCastExceptionãã¹ããŒãããŸãã 座æšãå¢çå
ã«ãªãå Žåããobjãnullã§ãªãããã¯ã»ã«ã»ããŒã¿ãæ ŒçŽããããã«ååãªå€§ããã§ãªãå Žåã¯ãArrayIndexOutOfBoundsExceptionãã¹ããŒãããŸãã
getDataElementsãã¯ã©ã¹SampleModelx - æå®ããããã¯ã»ã«ã®X座æšy - æå®ããããã¯ã»ã«ã®Y座æšobj - ãã¯ã»ã«ã»ããŒã¿ãè¿ãããªããã£ãé
åããŸãã¯nullãdata - ã€ã¡ãŒãžã»ããŒã¿ãæ ŒçŽããDataBufferãObjectãClassCastException - objãTransferTypeåã®ããªããã£ãé
åã§ãªããnullã§ããªãå ŽåArrayIndexOutOfBoundsException - 座æšãå¢çå
ã«ãªãå ŽåããŸãã¯objãnullã§ã¯ãªãããã¯ã»ã«ã»ããŒã¿ãä¿æããã®ã«ååãªå€§ããã§ã¯ãªãå ŽåsetDataElements(int, int, Object, DataBuffer)public int[] getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
inté
åã®å
é èŠçŽ ã®ãæå®ããã1ã€ã®ãã³ãã®ãã¯ã»ã«ãè¿ããŸãã 座æšãå¢çå
ã«ãªãå Žåã¯ãArrayIndexOutOfBoundsExceptionãã¹ããŒãããŸãã getPixelãã¯ã©ã¹SampleModelx - æå®ããããã¯ã»ã«ã®X座æšy - æå®ããããã¯ã»ã«ã®Y座æšiArrayè¿ããããã¯ã»ã«ãæ ŒçŽãããé
åããŸãã¯nulldata - ã€ã¡ãŒãžã»ããŒã¿ã®æ ŒçŽå
ã®DataBufferArrayIndexOutOfBoundsException - 座æšãç¯å²å€ã«ããå ŽåsetPixel(int, int, int[], DataBuffer)public void setDataElements(int x,
int y,
Object obj,
DataBuffer data)
DataBufferã®1ã€ã®ãã¯ã»ã«ã®ããŒã¿ããTransferTypeåã®ããªããã£ãé
åããèšå®ããŸãã MultiPixelPackedSampleModelã®å Žåã¯ãé
åã®å
é èŠçŽ ã ããæå¹ãªããŒã¿ãä¿æããåã¯1ã€ã®ãã¯ã»ã«ãä¿æã§ããDataBuffer.TYPE_BYTEãDataBuffer.TYPE_USHORTããŸãã¯DataBuffer.TYPE_INTã®ãã¡ã®æå°ã®ãã®ã«ãªããŸãã
次ã®ã³ãŒãã¯ãMultiPixelPackedSampleModel mppsm1ã«ãã£ãŠã¹ãã¬ãŒãžã»ã¬ã€ã¢ãŠããèšè¿°ãããŠããDataBuffer db1ãããMultiPixelPackedSampleModel mppsm2ã«ãã£ãŠã¹ãã¬ãŒãžã»ã¬ã€ã¢ãŠããèšè¿°ãããŠããDataBuffer db2ãžã1ãã¯ã»ã«ã®ããŒã¿ã転éããäŸã§ãã ãã®è»¢éæ¹æ³ã¯ãgetPixelãŸãã¯setPixelãäœ¿ãæ¹æ³ãããéåžžå¹ççã§ãã
MultiPixelPackedSampleModel mppsm1, mppsm2;
DataBufferInt db1, db2;
mppsm2.setDataElements(x, y, mppsm1.getDataElements(x, y, null,
db1), db2);
SampleModelãªããžã§ã¯ãã®ãã³ãæ°ãåãã§ã察å¿ãããã³ãã®ãµã³ãã«ãããã®ãããæ°ãåãã§ãTransferTypeãåãã§ããå Žåã2ã€ã®DataBuffer/SampleModelãã¢éã®è»¢éã«ã¯ãgetDataElements/setDataElementsã䜿çšããã®ãé©åã§ãã
objã¯ãTransferTypeåã®ããªããã£ãé
åã«ãªããŸãã ããã§ãªãå Žåã¯ãClassCastExceptionãã¹ããŒãããŸãã 座æšãå¢çå
ã«ãªãå Žåããobjããã¯ã»ã«ã»ããŒã¿ãæ ŒçŽããããã«ååãªå€§ããã§ãªãå Žåã¯ãArrayIndexOutOfBoundsExceptionãã¹ããŒãããŸãã
setDataElementsãã¯ã©ã¹SampleModelx - ãã¯ã»ã«äœçœ®ã®X座æšy - ãã¯ã»ã«äœçœ®ã®Y座æšobj - ãã¯ã»ã«ã»ããŒã¿ãæ ŒçŽããããªããã£ãé
ådata - ã€ã¡ãŒãžã»ããŒã¿ãæ ŒçŽããDataBuffergetDataElements(int, int, Object, DataBuffer)public void setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
inté
åãå
¥åãšããDataBufferã®ãã¯ã»ã«ãèšå®ããŸãã 座æšãå¢çå
ã«ãªãå Žåã¯ãArrayIndexOutOfBoundsExceptionãã¹ããŒãããŸãã setPixelãã¯ã©ã¹SampleModelx - ãã¯ã»ã«äœçœ®ã®X座æšy - ãã¯ã»ã«äœçœ®ã®Y座æšiArray - inté
åã®å
¥åãã¯ã»ã«data - ã€ã¡ãŒãžã»ããŒã¿ãæ ŒçŽããDataBuffergetPixel(int, int, int[], DataBuffer)public boolean equals(Object o)
Object
equalsã¡ãœããã¯ãnull以å€ã®ãªããžã§ã¯ãåç
§ã§ã®åå€é¢ä¿ãå®è£
ããŸãã
xã«ã€ããŠãx.equals(x)ã¯trueãè¿ããŸãã
xããã³yã«ã€ããŠãy.equals(x)ãtrueãè¿ãå Žåã«éããx.equals(y)ã¯trueãè¿ããŸãã
xãyãããã³zã«ã€ããŠãx.equals(y)ãtrueãè¿ããy.equals(z)ãtrueãè¿ãå Žåãx.equals(z)ã¯trueãè¿ããŸãã
xããã³yã«ã€ããŠãx.equals(y)ã®è€æ°ã®åŒåºãã¯ããã®ãªããžã§ã¯ãã«å¯Ÿããequalsã«ããæ¯èŒã§äœ¿ãããæ
å ±ã倿ŽãããŠããªããã°ãäžè²«ããŠtrueãè¿ãããäžè²«ããŠfalseãè¿ããŸãã
xã«ã€ããŠãx.equals(null)ã¯falseãè¿ããŸãã
Objectã¯ã©ã¹ã®equalsã¡ãœããã¯ããã£ãšãæ¯èŒãããããªããžã§ã¯ãã®åå€é¢ä¿ãå®è£
ããŸããã€ãŸããnull以å€ã®åç
§å€xãšyã«ã€ããŠããã®ã¡ãœããã¯xãšyãåããªããžã§ã¯ããåç
§ãã(x == yãtrue)å Žåã«ã ãtrueãè¿ããŸãã
éåžžããã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ãhashCodeã¡ãœãããåžžã«ãªãŒããŒã©ã€ãããŠããç䟡ãªãªããžã§ã¯ãã¯ç䟡ãªããã·ã¥ã»ã³ãŒããä¿æããå¿
èŠãããããšããhashCodeã¡ãœããã®æ±çšèŠçŽã«åŸãå¿
èŠãããããšã«çæããŠãã ããã
equalsãã¯ã©ã¹Objecto - æ¯èŒå¯Ÿè±¡ã®åç
§ãªããžã§ã¯ããtrueããã以å€ã®å Žåã¯falseãObject.hashCode()ãHashMappublic int hashCode()
ObjectHashMapã«ãã£ãŠæäŸãããããã·ã¥è¡šãªã©ã®ãããã·ã¥è¡šã®å©ç¹ã®ããã«ãµããŒããããŠããŸãã
hashCodeã®äžè¬çãªèŠåã¯æ¬¡ã®ãšããã§ãã
equalsã®æ¯èŒã§äœ¿çšãããæ
å ±ã倿ŽãããŠããªããã°ãhashCodeã¡ãœããã¯åžžã«åãæŽæ°ãè¿ãå¿
èŠããããŸãã ãã ãããã®æŽæ°ã¯åãã¢ããªã±ãŒã·ã§ã³ã®å®è¡ããšã«åãã§ããå¿
èŠã¯ãããŸããã
equals(Object)ã¡ãœããã«åŸã£ãŠ2ã€ã®ãªããžã§ã¯ããçããå Žåã¯ã2ã€ã®åãªããžã§ã¯ãã«å¯ŸããhashCodeã¡ãœããã®åŒåºãã«ãã£ãŠåãæŽæ°ã®çµæãçæãããå¿
èŠããããŸãã
Object.equals(java.lang.Object)ã¡ãœããã«åŸã£ãŠ2ã€ã®ãªããžã§ã¯ããçãããªãå Žåã¯ã2ã€ã®åãªããžã§ã¯ãã«å¯ŸããhashCodeã¡ãœããã®åŒåºãã«ãã£ãŠç°ãªãæŽæ°ã®çµæãçæãããå¿
èŠã¯ãããŸããã ãã ããããã°ã©ãã¯ãçãããªããªããžã§ã¯ãã«å¯ŸããŠç°ãªãæŽæ°ã®çµæãçæãããšãããã·ã¥è¡šã®ããã©ãŒãã³ã¹ãåäžããå¯èœæ§ãããããšã«æ³šæããããã«ããŠãã ããã
ã¯ã©ã¹Objectã«ãã£ãŠå®çŸ©ãããhashCodeã¡ãœããã¯ãå¯èœãªããããç°ãªããªããžã§ã¯ãã«å¯ŸããŠç°ãªãæŽæ°ãè¿ããŸãã (ããã¯éåžžããªããžã§ã¯ãã®å
éšã¢ãã¬ã¹ãæŽæ°ã«å€æããããšã«ãã£ãŠå®è£
ãããŸããããã®å®è£
ãã¯ããã¯ã¯Javaâ¢ããã°ã©ãã³ã°èšèªã§ã¯å¿
èŠãããŸããã)
hashCodeãã¯ã©ã¹ObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object) ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã