集合框架问题详解

编程

什么是集合???

用一句话来概括就是,集合就是存放“类对象“的容器,集合类存放于java.util包中,集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。集合类型主要有3种:set(集)、list(列表)和map(映射)。集合接口分为:Collection和Map,list、set实现了Collection接口。

集合相对于数组的作用

  集合相对于数组来说有很多的优势,比如说集合的长度可以改变,但是数组的长度就不能改变,只要确定后就永远都不可以改变。集合大体分为三种,list集合 set集合和map集合。这三种集合各有优势,我们平时用的大多是list和map。list集合的优势在与读取速度快,适合用来遍历数据,因为list集合根本还是数组,只不过是在数组上面做了很多的运算才使得他可一改变长度。而map集合的优势是他查找数据容易,应为他包含了两个对象,可以很快的查找数据,改变数据。

使用Iterator遍历结合的方法

public class MyTest {

public static void main(String[] args) {

//1iterator 迭代ArrayList集合

List list = new ArrayList<>();

//集合

list.add("a");

list.add("b");

list.add("c");

//获取迭代器

Iterator iter = list.iterator();

//判断下一个元素是否存在

while (iter.hasNext()){

//存在使用next迭代

Object o = iter.next();

// if(o.equals("a")){

// iter.remove();

// }

System.out.println("数字分别是:"+o);

}

//2iterator迭代set集合

HashSet set = new HashSet<>();

set.add(new Theme(1,"标题1","内容1"));

set.add(new Theme(2,"标题2","内容2"));

Iterator ite = set.iterator();

while (ite.hasNext()){

Theme theme = (Theme)ite.next();

System.out.println(theme.getNumber()+","+theme.getTitle()+","+theme.getIntroduce());

}

//3iterator迭代map集合

//①:相对来说比较麻烦

Map map=new HashMap<>();

map.put(1,"陈诚");

map.put(2,"余恩丽");

map.put(3,"赵容");

//返回键的集合

Set keySet = map.keySet();

Iterator itera = keySet.iterator();

while (itera.hasNext()){

System.out.println((int)itera.next());

}

//返回值的集合

Collection values = map.values();

Iterator iteraa = values.iterator();

while (iteraa.hasNext()){

System.out.println((Object) iteraa.next());

}

//②、:enrtySet

Set set1=map.keySet();//得到键的集合

Collection values1=map.values(); //得到值的集合

// Set<Map.Entry<Integer,String>> entrySet = map.entrySet();

Iterator<Map.Entry<Integer, String>> entryIterator = map.entrySet().iterator();

while (entryIterator.hasNext()){

Map.Entry<Integer, String> entry = entryIterator.next();

System.out.println("键是:"+entry.getKey()+",值是:"+entry.getValue());

}

}

}

keySet是键的集合,Set里面的类型即key的类型,entrySet是 键-值 对的集合,Set里面的类型是Map.Entry

 使用迭代删除Arraylist中的数据

//准备数据

List<Student> list = new ArrayList<>();

list.add(new Student("male"));

list.add(new Student("female"));

list.add(new Student("female"));

list.add(new Student("male"));

//遍历删除,除去男生

Iterator<Student> iterator = list.iterator();

while (iterator.hasNext()) {

Student student = iterator.next();

if ("male".equals(student.getGender())) {

iterator.remove();//使用迭代器的删除方法删除

}

}

使用迭代删除HashMap中的数据

虽然Map没有迭代,但是它的entrySet有啊,所以我们可以通过它来实现遍历删除

Map<String, Integer> map = new HashMap<>();

map.put("a", 1);

map.put("b", 2);

map.put("c", 3);

map.put("d", 4);

Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();

while (iterator.hasNext()) {

entry = iterator.next();

if (entry.getValue() % 2 == 0) {

iterator.remove();

}

}

System.out.println(map);

 

以上是 集合框架问题详解 的全部内容, 来源链接: utcz.com/z/514633.html

回到顶部