В моем приложении у меня есть два arraylist, оба arraylist имеют несколько объектов, здесь один arraylist имеет результаты области, а другой - простой класс класса, содержащий несколько объектов.
Теперь я пытаюсь отфильтровать «элемент» массива областей с содержимым другого массива, например: если объект «имя» моего массива «А» содержит «123», то все элементы в массиве «В», имеющие «123», должны быть удаленным, но я действительно запутался, как это сделать, вот мой полный код:
Вот как я пытаюсь получить результаты с помощью запроса области, но мне не повезло:
var item=realm.where(Devicesdatabase::class.java).notEqualTo("devicename",hosts.get(0).hostname).findAll()
// item - это массив, который я хочу отфильтровать
// hosts arrylist Я хочу, чтобы значения этого массива сравнивались для фильтрации и удаления данных фильтра, если он соответствует данным хостов
for(i in hosts!!.indices )
{
var nm = hosts!!.get(i).hostname
var mac = hosts!!.get(i).hardwareAddress
var typ = hosts!!.get(i).deviceType
}
Класс базы данных Realm:
@RealmClass
open class Devicesdatabase : RealmModel{
@PrimaryKey
var id:Int?=null
var wifi:String?=null
var devicename: String? = null
var macAddress: String? = null
var status:Boolean = false
var type:String?=null
}
Объект класса Hostbean, хранящий массив хостов:
public class HostBean implements Parcelable {
public static final String EXTRA = ActivityMain.Companion.getPKG() + ".extra";
public static final String EXTRA_POSITION = ActivityMain.Companion.getPKG() + ".extra_position";
public static final String EXTRA_HOST = ActivityMain.Companion.getPKG() + ".extra_host";
public static final String EXTRA_TIMEOUT = ActivityMain.Companion.getPKG() + ".network.extra_timeout";
public static final String EXTRA_HOSTNAME = ActivityMain.Companion.getPKG() + ".extra_hostname";
public static final String EXTRA_BANNERS = ActivityMain.Companion.getPKG() + ".extra_banners";
public static final String EXTRA_PORTSO = ActivityMain.Companion.getPKG() + ".extra_ports_o";
public static final String EXTRA_PORTSC = ActivityMain.Companion.getPKG() + ".extra_ports_c";
public static final String EXTRA_SERVICES = ActivityMain.Companion.getPKG() + ".extra_services";
public static final int TYPE_GATEWAY = 0;
public static final int TYPE_COMPUTER = 1;
public int deviceType = TYPE_COMPUTER;
public int isAlive = 1;
public int position = 0;
public int responseTime = 0; // ms
public String ipAddress = null;
public String hostname = null;
public String hostsection = null;
public String hardwareAddress = NetInfo.NOMAC;
public String nicVendor = "Unknown";
public String os = "Unknown";
public HashMap<Integer, String> services = null;
public HashMap<Integer, String> banners = null;
public ArrayList<Integer> portsOpen = null;
public ArrayList<Integer> portsClosed = null;
public HostBean() {
// New object
}
public HostBean(Parcel in) {
// Object from parcel
readFromParcel(in);
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(deviceType);
dest.writeInt(isAlive);
dest.writeString(ipAddress);
dest.writeString(hostname);
dest.writeString( hostsection );
dest.writeString(hardwareAddress);
dest.writeString(nicVendor);
dest.writeString(os);
dest.writeInt(responseTime);
dest.writeInt(position);
dest.writeMap(services);
dest.writeMap(banners);
dest.writeList(portsOpen);
dest.writeList(portsClosed);
}
private void readFromParcel(Parcel in) {
deviceType = in.readInt();
isAlive = in.readInt();
ipAddress = in.readString();
hostname = in.readString();
hardwareAddress = in.readString();
nicVendor = in.readString();
os = in.readString();
hostsection=in.readString();
responseTime = in.readInt();
position = in.readInt();
services = in.readHashMap(null);
banners = in.readHashMap(null);
portsOpen = in.readArrayList(Integer.class.getClassLoader());
portsClosed = in.readArrayList(Integer.class.getClassLoader());
}
@SuppressWarnings("unchecked")
public static final Creator CREATOR = new Creator() {
public HostBean createFromParcel(Parcel in) {
return new HostBean(in);
}
public HostBean[] newArray(int size) {
return new HostBean[size];
}
};
}