集合框架问题详解
什么是集合???
用一句话来概括就是,集合就是存放“类对象“的容器,集合类存放于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) {
//1、iterator 迭代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);
}
//2、iterator迭代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());
}
//3、iterator迭代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