集合:Collection类、List集合、Set、集合常用的方法

一、集合

1、集合的概述:

1.1、集合是一个容器,数组也是一个容器,但是数组的大小是固定的、类型是唯一的。
1.2、集合可以容纳多个对象,大小可变,集合不能够直接存储基本数据类型,象,集合当中存储的都是都是java的对象的内存地址,引用数据类型。
1.3.、集合在java JDK的 java.util.包下 ,
所有的集合类和集合接口都在java.utile包下。
1.4、集合分为两大类:一类是单列集合 ,另一类是双列集合
1.5、:
new ArrayList(); 创建一个集合,底层是数组。
new LinkedList(); 创建一个集合对象,底层是链表。

2、Collection类
public class CollectionDemo {
	
	public static void main(String[] args) {
		Collection collection = new ArrayList();  //创建一个集合,底层是数组  多态 
		collection.add("hellow"); // add方法 添加内容
		collection.add("word");
		System.out.println(collection);
		
		Collection coll2 = new ArrayList();
		coll2.add("你好");
		coll2.add(123); //自动装箱
		collection.addAll(coll2);  // addAll方法 在调用者之后添加变量名
		System.out.println(collection);
		coll2.remove(123);  //remove 方法删除集合中指定的元素
		System.out.println(coll2);
		System.out.println(collection);
		collection.removeAll(coll2);  //removeAll  在collection集合中移除coll2集合
		System.out.println(collection);
		collection.clear();
		System.out.println(collection);//清空集合,移除集合中所有元素
		System.out.println("-------------------判断------------------------------");
		System.out.println(collection.isEmpty()); //isEmpty判断集合是否为空  如果是空则为true 否则为flase
		coll2.add("word");
		coll2.add("hellow");
		coll2.add(123);
		collection.add("word");
		collection.add("hellow");
		System.out.println(coll2.contains(123));//contains判断集合中是否含有当前元素 如果有则为ture 否则为flase
		//collection没有包含coll2 所以结果是flase
		System.out.println(collection.containsAll(coll2));//containsAll 判断集合中是否包含此集合 如果有则为ture 否则为flase
		System.out.println(coll2.size()); // size获取集合的长度的方法,获取集合中元素的个数
	}

2.1:Collection中的迭代器

	public static void iteratorMethod() {
		Collection coll = new ArrayList(); //迭代器取出是可重复的, HashSet不可重复,顺序不一定相同
		coll.add(123123);
		coll.add("hellow");
		coll.add("world");
		Iterator it = coll.iterator(); //获取迭代器对象
		System.out.println(it.hasNext()); //hasNext如果迭代的有更多元素则返回true
		System.out.println(coll);	
		while(it.hasNext()) { 				
			if(it.next() instanceof String) {//如果是String类型		//next();让迭代器前进一位并返回
				it.remove();		//将String类型的删除
				//System.out.println(it.next()); 当前会报错 因为这边的it.next()指的不是if判断的if.next();
			}
		}
		System.out.println(coll); //移除后的元素
		
	}
3、List集合:

1、List接口中的常用方法。
List是Collection接口的子接口。所以List接口中有一些特有的方法。
void add(int index, Object element)
Object set(int index, Object element)
Object get(int index)
int indexOf(Object o)
int lastIndexOf(Object o)
Object remove(int index)

	public static void main(String[] args) {
		
		List c = new ArrayList(); //创建一个底层为数组的集合
		c.add("第一");
		c.add("第二");
		c.add("第三");
		System.out.println(c);
		c.add(0, "第零"); 	//List中 有一个可以选择下标的方法
		System.out.println(c);
		List b = new ArrayList();
		b.add("第四");
		b.add("第五");
		c.addAll(2, b);  //在下标为二的前面插入 b集合
		System.out.println(c);
		b.remove(1); //根据 下标移除 移除下标为1的
		System.out.println(b);
		System.out.println(c);
		System.out.println(c.get(2)); //List get方法 获取当前坐标的元素
		System.out.println("---------------------------");
		System.out.println(lit.next()); //下一个
		System.out.println(lit.next());
		System.out.println(lit.next());
		System.out.println(lit.previous());//上一个
		System.out.println(lit.previous());
		System.out.println(lit.previous());
		
	}

List集合中常见的子类:
1、ArrayList
使用的是数组数据结构,查询快,增删慢
2、LinkedList
使用的是数组链表数据结构,增删快,查询慢
addFirst(); 在该列表开头插入指定元素
addLast();在该列表结尾插入指定元素

4、Set集合

Set集合:不允许重复,且不保证输出顺序
不重复是通过e1.equals(e2)
在equals的判断中,需要注意另外一个问题—地址问题(集合中存储的都是引用数据类型,引用数据类型都有自己的地址的)
在进行equals比较之前,先比较了地址的

5、集合中常用的方法

1.add(Object object); -----------像集合中添加一个元素
2.addAll(Collection collection);-------像集合中添加一个集合
3.remove(Object object);---------- 从集合中移除指定元素
4.removeAll(Collection collection);------从集合中移除指定的集合元素
5.clear();------------------清空集合中所有的元素
6.is Empty(); ----------------判断集合是否为空
7.contains(Object object);----------------判断集合中是否包含指定的元素
8.containsAll(Collection collection)----------判断集合中是否有另一个集合中对应的所有的元素
9.iterator() ----------------------遍历, (迭代器)
10.size()-----------------获取元素的个数(长度)
11.toArray()---------------------- 将集合转换为数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值