Как отфильтровать массива областей от другого массива строк - PullRequest
1 голос
/ 08 июля 2019

В моем приложении у меня есть два 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];
        }
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...