Java集合框架(未完)

Collection

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KYCkW7Ht-1597489135821)(en-resource://database/530:0)]

方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kuFw25nU-1597489135824)(en-resource://database/532:0)]

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

public class A
{
    public static void main(String[] args)
    {
        Collection collection = new ArrayList();
        Collection collection1 = new ArrayList();
        collection.add("小张");
        collection.add(new Date());
        collection.add(12);
        collection1.add("小李");
        collection1.add("小王");
        collection.addAll(collection1);
        System.out.println(collection.isEmpty());
        System.out.println(collection.contains(12));
        System.out.println(collection.containsAll(collection1));

    }
}

迭代器
利用迭代器遍历

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class B
{
    public static void main(String[] args)
    {
        Collection collection = new ArrayList();
        collection.add("a");
        collection.add("b");
        collection.add("c");
        Iterator iterator = collection.iterator();
        /**
         * 利用迭代器遍历集合元素方式
         * *
         */
        //1.方式一

         for (int i = 0; i < collection.size(); i++)

         {

            System.out.println(iterator.next());

         }
        //2.方式二
        while(iterator.hasNext())
        {
            System.out.println(iterator.next());
        }
        //3.
         for(Object o:collection)
            System.out.println(o);
    }
}

ArrayList和HashSet

Collection(存放一个一个的值)

  • List(存放有序,可重复的数)
    ArrayList(数组)
    LinkedList(链表)
  • Set(存放无序,不可重复的数)

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class C
{
    public static void main(String[] args)
    {
        Collection arrayList = new ArrayList();
        Collection hashset = new HashSet();
        arrayList.add("a");
        arrayList.add("b");
        arrayList.add("a");
        System.out.println("arraylist中的元素为:");
        for(Object o : arrayList)
        {
            System.out.println(o);
        }
        hashset.add("a");
        hashset.add("b");
        hashset.add("a");
        System.out.println("hashset中的元素为:");
        for(Object o : hashset)
        {
            System.out.println(o);
        }
    }
}

结果:

arraylist中的元素为:
a
b
a
hashset中的元素为:
a
b

ArrayList(数组)和LinkList(链表)

ArrayList

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JIbp8KyD-1597489135835)(en-resource://database/540:0)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f3OUrgUD-1597489135837)(en-resource://database/538:0)]

import java.util.ArrayList;

public class A
{
    public static void main(String[] args)
    {
        //构造一个初始容量为十的空列表。
        ArrayList arrayList = new ArrayList();
    }
}

源代码

public ArrayList() {
	this(10);
    }

(initialCapacity传入10)

 public ArrayList(int initialCapacity) {
	super();
        if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal Capacity: "+
                                               initialCapacity);
	this.elementData = new Object[initialCapacity];//存入数组
    }

add方法:

import java.util.ArrayList;

public class A
{
    public static void main(String[] args)
    {
        //构造一个初始容量为十的空列表。
        ArrayList arrayList = new ArrayList();
        arrayList.add("a");
    }
}

源代码

public boolean add(E e) {
	ensureCapacity(size + 1);  // Increments modCount!!      //扩容操作
	elementData[size++] = e;                                        //加入元素
	return true;
    }
扩容方法
import java.util.ArrayList;

public class A
{
    public static void main(String[] args)
    {
        //构造一个初始容量为十的空列表。
        ArrayList arrayList = new ArrayList(2);
        arrayList.add("a");
        arrayList.add("b");
        arrayList.add("c");
    }
}

此时初始容量小于当前长度

 public boolean add(E e) {
	ensureCapacity(size + 1);  // Increments modCount!!
	elementData[size++] = e;
	return true;
    }

ensureCapacity();为扩容方法

 public void ensureCapacity(int minCapacity) {     
	modCount++;
	int oldCapacity = elementData.length;	//获取当前数组空间,即为2
	if (minCapacity > oldCapacity) {//判断数组是否需要扩容
	    Object oldData[] = elementData;
	    int newCapacity = (oldCapacity * 3)/2 + 1;//将数组扩容到原来的容量*3/2+1倍
    	    if (newCapacity < minCapacity)//判断新容量是否小于当前长度
		newCapacity = minCapacity;//不满足需要则将当前长度作为新容量
            // minCapacity is usually close to size, so this is a win:
            elementData = Arrays.copyOf(elementData, newCapacity);//数组拷贝
	}
    }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值