关于集合

博客介绍了Collection接口常用子类List和Set接口。List接口有序,可精确控制元素插入位置,允许重复元素;Set接口不包含重复元素。还介绍了List的子类ArrayList和Linkedlist,Set的实现类HashSet和LinkedHashSet的特点,以及哈希表存储的重要知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1) Collection 接口常用的子类有两个:List接口和Set接口
(2) List接口,有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

package cn.itcast.String;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class ListDemo {
	public static void main(String[] args) {
		function();
	}

	private static void function1() {
		//多态调用
		List<Double> list = new ArrayList<Double>();
		list.add(12.0);
		list.add(11.0);
		list.add(10.0);
		list.add(9.0);
		list.set(3, 1.0);
		list.remove(0);
		//工具类提供的排序方法
		Collections.sort(list);
		System.out.println(list);

	}

	private static void function() {
		List<String> list = new ArrayList<String>();
		list.add("abc1");
		list.add("cbc2");
		list.add("bbc3");
		list.add("dbc4");

		/*
		 * //使用迭代器获取集合中的元素 Iterator<String> it = list.iterator();
		 * while(it.hasNext()){ String s = it.next(); if(s.equals("abc1")){
		 * list.set(2, "a"); }
		 */
		Collections.sort(list);
		for (String s : list) {
			System.out.println(s);
		}
	}
}

(3) Set接口,一个不包含重复元素的 collection。不允许存放重复的元素,而List接口中允许存放重复的元素。

package cn.itcast.Set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/*
 * set接口,特点不重复元素
 * 无索引
 */
public class SetDemo {
	public static void main(String[] args) {
		Set<String> set = new HashSet<String>();
		set.add("cn");
		set.add("itcast");
		set.add("itheima");
		set.add("java");

		Iterator<String> it = set.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}
		System.out.println("====================");
		for (String i : set) {
			System.out.println(i);
		}
	}
}

(4)List接口常用的子类有ArrayList和Linkedlist,其中Linkedlist采用链表的形式存储元素,增删快,但是查询效率低,并且Linkedlist类提供了大量的首尾操作的方法,如
(a) void addFirst(E e)
将指定元素插入此列表的开头。
(b) void addLast(E e)
将指定元素添加到此列表的结尾。

(5)Set接口常用的两个实现类是HashSet(无序,允许存在null元素,无索引一说)和LinkedHashSet
这里有个重要的知识点:哈希表的存储过程
在这里插入图片描述
图片用了老师画的
这里sun公司官方规定了,只要两个对象的equails方法返回值为true,则两个对象的哈希值一定相同

LinkedHashSet继承自HashSe,自身特性有:
具有顺序(比较异类?),存储顺序和取出顺序一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值