Java基础学习五————集合

集合
简称集,是用来存储多个元素的容器
集合和数组的区别
*元素类型:
集合:引用数据类型(存储基本类型时自动装箱)
数组:基本数据类型、引用类型
*元素个数:
集合:不固定,可任意扩容
数组:固定,不可改变容量
不受容器大小限制,可以随时添加、删除元素
提供了大量操作元素的方法(判断,获取等)

Java的集合体系
单列集合(Collection)
List:ArrayList
Set:HashSet
双列集合(Map:key,value)
Map:HashMap

List集合:
特点:可重复、有序(存取顺序相同)
命令:List list = new ArrayList();

向集合中添加元素的方法:add()
遍历集合的方法:for循环
获得集合中的某个元素:.get()
获取集合中元素个数的方法:size()

增强for循环

for(object o :list){
	System.out.println(o);
	}

即遍历集合输出

迭代器(Iterator)
对过程的重复,称为迭代
迭代器是遍历Collection集合的通用方式。可以在集合遍历的同时进行添加、删除操作。
常用方法
next():返回迭代的下一个元素对象
hasNext():如果仍有元素可以迭代,则返回true
列表迭代器(ListIterator)是List体系独有的遍历方式,可以在集合遍历的同时进行添加、删除等操作。
但是必须通过调用列表迭代器的方式来实现

泛型
即泛指任意类型,又叫参数化类型。用来限制集合的元素类型
如list的添加list.add()是不受限制的,可以是任意数据类型,用泛型限制后,就只能添加某一种数据类型的元素
如List list = new ArrayList<>(); //只能添加String类型的元素

Collections工具类
针对集合进行操作的工具类
成员方法:
1)sort(List)根据元素的自然顺序,将指定列表按升序排序
2)max(Collection)返回集合的最大元素
3)reverse(Lsit)反转List集合元素
4)shuffle(List)使用默认的随机源随机置换指定的列表(打乱

Set集合
不可重复、无序
多次添加会自动依据equals()和hashCode()两种方法去重

package cn.iproute.demo1;
import java.util.Objects;
public class Student {    
	private int id;    
	private String name;        
	//无参构造与全参构造    
	//get与set方法    
	//toString方法    
	//equals与hashCode方法 ... }
package cn.iproute.demo1;
import java.util.HashSet; 
import java.util.Iterator; 
import java.util.Set;

public class Test {    
	public static void main(String[] args) {        
		Set<Student> set = new HashSet<>();        
		Student s1 = new Student(1,"张三");        
		Student s2 = new Student(2,"李四");        
		Student s3 = new Student(3,"王二");        
		Student s4 = new Student(3,"王二");
        set.add(s1);        
        set.add(s2);    //多次添加会自动依据equals()和hashCode()两种方法去重        
        set.add(s3);        
        set.add(s4);
        
        Iterator<Student> it = set.iterator();  //使用迭代器来遍历        
        while (it.hasNext()){            
        Student s = it.next();            
        System.out.println(s);        
        }
        System.out.println(set);        
        for (Student student : set) {            
        System.out.println(student);    //打印顺序与添加顺序并不相同        
        }    
       } 
      }

Map集合
双列集合,元素由键值对( Entry )构成
key 不可以重复, value 可以重复
向map集合中添加元素的方法为: put()
遍历集合的方式:

获取所有的key : keySet() 
遍历 keySet ,通过 key 
获取 value : get() 

遍历 keySet 的方法; iterator()

package cn.iproute.demo1;
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.Map; 
import java.util.Set;

public class Test {    
public static void main(String[] args) {        
	Map<Integer,Student> map = new HashMap<>();
        Student s1 = new Student(1,"张三");        
        Student s2 = new Student(2,"李四");        
        Student s3 = new Student(3,"张三");
        
        System.out.println(map.put(1,s2));  //利用键去覆盖数值的时候会返回被覆盖的值      			
        System.out.println(map.put(1,s1));        
        map.put(2,s2);        
        map.put(3,s3);
        
        System.out.println(map);
        
        Set<Integer> keys = map.keySet();       //获取map中的key,组成一个set集合        
        Iterator<Integer> it = keys.iterator();     //将set集合变为一个迭代器        
        while (it.hasNext()){       //遍历key组成的迭代器            
        Integer key = it.next();            
        System.out.println("key:"+ key +" value:"+map.get(key));    //打印结果        
        }
        
        for (Integer integer : map.keySet()) {      //使用for遍历所有的key            
        System.out.println(map.get(integer));        
        }        
        for (Student value : map.values()) {        //使用for遍历所有的value            
        System.out.println(value);
        }    
       } 
      }
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值