/ / सरणी से एक तत्व निकालें - जावा, सरणियाँ

एक सरणी - जावा, सरणियों से एक तत्व निकालें

मुझे एक मैच के आधार पर सरणी के एक तत्व को निकालने की आवश्यकता है। यहाँ घटना को दूर करने के लिए मेरा तरीका है।

public boolean removeEvent(int year, int month, int day, int start, int end, String activity)
{
Event newEvent = new Event(year, month, day, start, end, activity);
for (int i = 0; i < 5; i++)
{
if (newEvent.equals(events[i]))
{
events[i] = null;
newEvent = null;
numEvents--;
}
}

जब मैं कोशिश करता हूँ

calendarTest1.removeEvent(2000, 1, 1, 1, 1, "Cal Test 1");

कुछ नहीं हुआ। मेरे पास उन मूल्यों के साथ मेरे सरणी में एक तत्व है, लेकिन यह उस तत्व को अशक्त करने के लिए नहीं बदलता है।

यह होमवर्क के लिए है, इसलिए मैं वास्तव में यह नहीं करना चाहता कि यह कैसे काम करता है, यह बताया जाना चाहिए।

यहाँ मेरी बराबर विधि है:

public boolean equals(Object obj){

Event someEvent = (Event) obj;
if(
this.date == someEvent.date
&&
this.start == someEvent.start
&&
this.end == someEvent.end
&&
this.activity.equals(someEvent.activity))

if(obj == null)
return false;
if(obj instanceof Event)
return true;
else
{
return false;
}
}

मैंने बहुत सी अलग-अलग चीजों की कोशिश की है लेकिन मुझे अभी भी NullPointerException Error मिलता है

उत्तर:

जवाब के लिए 0 № 1

आपकी ओवरराइड की गई समान विधि शॉएडिग नीचे की तरह होनी चाहिए

   @Override
public boolean equals(Object o) {

// If the object is compared with itself then return true
if (o == this) {
return true;
}

/* Check if o is an instance of Event or not
"null instanceof [type]" also returns false */
if (!(o instanceof Event)) {
return false;
}

// typecast o to Event so that we can compare data members
Event e = (Event) o;

// Compare the data members and return accordingly
return year==e.year && month== e.month && day==e.day && start == e.start && end == e.end && activity.equals(e.activity);
}
}

जवाब के लिए 0 № 2

आप इसमें दो उदाहरणों की तुलना कर रहे हैं यदि event[i] है Event उदाहरण तो तुलना तरीका अलग है तो तार तुलना।

आपको ओवरराइड करने की जरूरत है equals आप कक्षा पूर्व में विधि:

@Override
public boolean equals(Object ob) {
if (ob == null)
return false;
if (ob instanceof Event) {
Event e = (Event)ob;
return this.someStringValue.equals(e.someStringValueItHas); // compare all values you want like this
}
return false;
}

यहां हम कक्षा के सही उदाहरण की जांच करते हैं, फिर उसके गुण यदि वे समान हैं या नहीं।


जवाब के लिए 0 № 3

सभी विशेषताओं के लिए आपकी बराबरी का तरीका जाँच रहा है?

public boolean equals(Object o){
if(o == null) return false;

if(o instanceOf Event){
Event givenObject = (Event) o;
if(this.year == givenObject.year)
if(this.month == givenObject.month)
.....
.....
if(this.activity.equals(givenObject.activity)){
return true;
}
}
return false;
}