碰到一个需求,扫描wifi,然后把扫到的wifi显示在list中,但是扫出来的wifi总是重复,为了实现去重效果,把list遍历,存储成map,然后利用map自身的特性,达到去重的目的,然后拿到不重复的map wifi列表,然后再次遍历map,把符合条件的wifi信息,存储到新的list中,然后展示这个list,可以实现wifi列表实时扫描显示
step1:
package com.example.demoanalytic
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.text.TextUtils
import android.util.Log
class MapTestActivity : AppCompatActivity() {
// private HashMap<String, StudentBean> map2 = new HashMap<>();
private var map2: HashMap<String, StudentBean> = HashMap<String, StudentBean>()
private var wifiList = mutableListOf<StudentBean>()
private val wifi = "mindor-"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
/*
map2.put("1", mStudentBean);
map2.put("2", mStudentBean2);
* */
val mStudentBean = StudentBean()
val mStudentBean2 = StudentBean()
val mStudentBean3 = StudentBean()
mStudentBean.age = 18
mStudentBean.name = "郭靖"
mStudentBean2.age = 22
mStudentBean2.name = "杨过"
mStudentBean3.age = 32
mStudentBean3.name = "黄蓉"
map2["mindor-001"] = mStudentBean
map2["mindor-002"] =mStudentBean2
map2["608"] =mStudentBean3
Log.e("TAG", "$map2")
/*
if (!list.isEmpty()) {
list.clear();
}
* */
if (wifiList.isNotEmpty()){
wifiList.clear()
}
val iter: Iterator<String> = map2.keys.iterator()
while (iter.hasNext()) {
val key = iter.next()
Log.e("TAG", "key:$key")
/* if (TextUtils.equals(key, "1")) {
map2?.let {
it[key]?.let { it1 -> wifiList.add(it1) }
}
}
boolean isData = connectedWifiInfo.getSSID().contains(WIFI_NAME);
*/
if (key.contains(wifi)){
map2?.let {
it[key]?.let { it1 -> wifiList.add(it1) }
}
}
}
Log.e("TAG", "key:$wifiList")
}
}
package com.example.demoanalytic;
public class StudentBean {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.example.demoanalytic;
import android.net.wifi.ScanResult;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
public class MapThreeActivity extends AppCompatActivity {
private CacheMap<String, StudentBean> cacheMap = new CacheMap<>();
private CacheMap<String, String> map = new CacheMap<>();
private HashMap<String, StudentBean> map2 = new HashMap<>();
private List<StudentBean> list;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = new ArrayList<>();
StudentBean mStudentBean = new StudentBean();
mStudentBean.setName("张飞");
mStudentBean.setAge(18);
StudentBean mStudentBean2 = new StudentBean();
mStudentBean2.setName("关羽");
mStudentBean2.setAge(21);
map2.put("1", mStudentBean);
map2.put("2", mStudentBean2);
if (!list.isEmpty()) {
list.clear();
}
Iterator<String> iter = map2.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Log.e("TAG", "key:" + key);
if (TextUtils.equals(key, "1")) {
list.add(map2.get(key));
}
}
Log.e("TAG", "list:" + list);
}
}