java集合

引言

  • 1.存储多个对象的容器有:数据组、集合
  • 2.数组存对象的特点:Student[] stu=new Student[10];
    数组弊端:一旦创建长度不可变为 此引入集合

集合特点:保存的都是引用类型变量(对象)不能保存基本数据类型,例如你存一个1不是int类型而是Integer

集合分为两大体系:Collection、Map

         ###  Collection接口下有List Set子接口
              * List接口(常用)特点:有序的,可重复
             *  Lsit实现类: ArrayList(主要实现类):底层数组实现,查询速度快
  •                            LinkedList:底层链表实现,增删改速度快
               * Set接口特点:以map为底层实现,无序的,不可以重复
               * Set实现类:HashSet
        ### Map接口:
    

底层是Hash函数,具有映射关系的集合,无序(不是随机)

重点无序(不是随机)位置由哈希值决定

 @Test
	public  void test(){
	 Collection coll=new ArrayList();
	   //size获取集合长度 常用
     System.out.println("集合长度:"+ coll.size());
     //add(Object ):添加元素 常用(不指定泛型默认Object)
     coll.add(123);//这个123在这里是Integer类型
     coll.add("as");
     coll.add(new Date());
     //addAll(Collection c):将集合c中元素添加到本集合中
     Collection c=Arrays.asList(1,6,9,78);
     coll.add(c);
     //isEmpty():判断当前集合是否为空  为空为true 不空为false 常用
     System.out.println(coll.isEmpty());
     //clear():清空集合中的元素
     System.out.println(coll.size());
   //contains(Object o) 判断当前集合中是否包含元素o
 	System.out.println(coll.contains(123));
 	//remove(Object o):删除元素o 成功返回true 失败返回false 常用
 	coll.remove(123);
 	//toArray():把集合转成数组 常用
 	Object[] o=coll.toArray();
 	for (Object object : o) {
		System.out.println(object);
	}
     
   }
    
    //遍历集合
    @Test
    public void test1(){
   Collection coll=new ArrayList();
   coll.add(123);//这个123在这里是Integer类型
   coll.add("as");
   coll.add(new Date());
   
   //第一种方式
   for(Object ob:coll){
	   System.out.println(ob);
   }
   System.out.println("====================");
   //第二种方式:
   //iterator():迭代器:返回的是一个Iterator接口
   Iterator i=coll.iterator();
   while(i.hasNext()){//hasNext()判断当前集合众是否下一个元素,如果有返回true 与next()成对出现
	   System.out.println(i.next());//获取完当前元素后会自动指向当前元素下一个元素
	   
   }
    }

ArrayList主要方法以及遍历方式

/**
	 * List常用方法
	 * 增  删 修改 查询  size()
	 * void add(int index, Object ele):添加元素	 
	 * Object remove(int index):根据索引值删除指定元素
	 * Object set(int index, Object ele):设置指定元素的索引值为ele
	 * Object get(int index):根据索引值查询元素值
	 * int set():获取集合长度
	 */
	List  list=new ArrayList();//下标从0开始
	//添加元素 
	list.add("aaa");
	list.add("bbb");
	list.add("ccc");
	list.add("ddd");
	System.out.println(list);
	//查询
	System.out.println(list.get(1));
	//删除
	list.remove(1);
	System.out.println(list);
	//修改
	list.set(0, 345);
	System.out.println(list);
	 //for循环
	for(int i=0;i<list.size();i++){
		System.out.println(list.get(i));
	}
	 //foreach
	for(Object obj:list){
		System.out.println(obj);
	}
	 //迭代器iterator
	Iterator i=list.iterator();
	 while(i.hasNext()){
		 System.out.println(i.next());

还有一些比较常用的

Arraylist 是List的主要是实现类
比较常用的方法:
void add(int index, Object ele):添加元素
boolean addAll(int index, Collection eles):根据指定索引值把元素添加到该位置
Object get(int index):根据索引值查询元素值
int indexOf(Object obj):返回集合元素中obj元素第一次出现的索引值 没有返回-1
int lastIndexOf(Object obj):返回集合元素中obj元素最后一次出现的索引值 没有返回-1
Object remove(int index):根据索引值删除指定元素
Object set(int index, Object ele):设置指定元素的索引值为ele

HashSet主要方法及其遍历方式

/**
	 * set:存储的元素是无序的,不可重复,主要的实现类HashSet()
	 * 1.无序:不是随机的指的是元素在底层存储的时候是无序
	 * 2.不可重复:在set添加相同元素时,后面的添加不进去,不是把前面的覆盖
	 * 当向set存元素的时候,首先调用该类的hashcode()方法,计算该对象的
	 * 哈希值,这个哈希值就代表这个对象的位置,如果该对象之前没有对象存储,那么就把该对象存储到该位置
	 * 如果此位置已经有了对象,调用equals方法,判断两个对象的是否相等,如果相等不等添加进来
	 *
	 */
	 Set set=new HashSet();
	 set.add(123);
	 set.add("aaa");
	 set.add("bbb");
	 set.add("123");
	 set.add(new Student("李四"));
	 set.add(new Student("李四"));
	 set.add(new Student("张三"));
	 System.out.println(set);
	 //foreach
	 for(Object obj:set){
		 System.out.println(obj);
	 }
	 
	 //迭代iterator
	 Iterator i=set.iterator();
	 while(i.hasNext()){
		 System.out.println(i.next());
发布了20 篇原创文章 · 获赞 0 · 访问量 140
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览