碰到一个需求,扫描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")
}
}
step2:
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;
}
}