Collection: collection接口中的常用方法
boolean add(E e)----向集合中添加一个元素,E 是元素的数据类型 1111
boolean addAll(Collection c) ---向集合中添加集合 c 中的所有元素 1111
void clear()-- 删除集合中的所有元素
boolean contains(Object o) ----判断集合中是否存在指定元素
boolean containsAll(Collection c)-----判断集合中是否包含集合 c 中的所有元素
boolean isEmpty()---判断集合是否为空
Iterator<E>iterator()---返回一个 Iterator 对象,用于遍历集合中的元素
Iterator it1=list2.iterator();
Iterator迭代器中的方法:
boolean hasNext()--如果迭代具有更多元素,则返回 true 。
E next()---返回迭代中的下一个元素。
remove:---从底层集合中删除此迭代器返回的最后一个元素(可选操作)
boolean remove(Object o)----从集合中删除一个指定元素
boolean removeAll(Collection c)----从集合中删除所有在集合 c 中出现的元素
boolean retainAll(Collection c)---仅仅保留集合中所有在集合 c 中出现的元素
int size()----返回集合中元素的个数
Object[] toArray()---返回包含此集合中所有元素的数组
--->set 元素不重复
HashSet: 为优化查询速度而设计的 基于HashMap实现,底层使用HashMap保存所有的元素 不可重复
HashSet 类是按照哈希算法来存储集合中的元素,使用哈希算法可以提高集合元素的存储速度,
当向 Set 集合中添加一个元素时,HashSet 会调用该元素的 hashCode() 方法,获取其哈希码,
然后根据这个哈希码计算出该元素在集合中的存储位置。
实现了Collection接口中的所有的方法,
HashSet():构造一个新的空的 Set 集合。
HashSet(Collection<? extends E>c):构造一个包含指定 Collection 集合元素的新 Set 集合。
其中,“< >”中的 extends 表示 HashSet 的父类,即指明该 Set 集合中存放的集合元素类型。
c 表示其中的元素将被存放在此 Set 集合中。
HashSet hs=new HashSet(); //调用无参的构造函数创建HashSet对象
HashSet<String> hss=new HashSet<String>(); //创建泛型的 HashSet 集合对象
HashSet<String> bookSet=new HashSet<String>(); //创建一个空的 Set 集合
String book1=new String("如何成为 Java 编程高手");
bookSet.add(book1); //将 bookl 存储到 Set 集合中
---》List:有序 可重复 可以容纳null,保证元素的存储位置
List list=new ArrayList();
--》ArrayList 数组实现的List,进行快速随机的访问 效率高 而且实现可变大小的数组
ArrayList 类提供了快速的基于索引的成员访问方式,对尾部成员的增加和删除支持较好。
使用 ArrayList 创建的集合,允许对集合中的元素进行快速的随机访问,不过,向 ArrayList 中插入与删除元素的速度相对较慢。
ArrayList 除了Collection中的方法之外,含有的List接口中 含有的方法
E get(int index)---获取此集合中指定索引位置的元素,E 为集合中元素的数据类型
int index(Object o)---返回此集合中第一次出现指定元素的索引,如果此集合不包含该元素,则返回 -1
int lastIndexOf(Obj ect o)---返回此集合中最后一次出现指定元素的索引,如果此集合不包含该元素,则返回 -1
E set(int index, E element)---将此集合中指定索引位置的元素修改为 element 参数指定的对象。此方法返回此集合中指定索引位置的原元素
List<E> subList(int fromlndex, int tolndex)---(包含开始,不包含结束位置)返回一个新的集合,新集合中包含 fromlndex 和 tolndex 索引之间的所有元素。包含 fromlndex 处的元素,不包含 tolndex 索引处的元素
--》LinkedList 对顺序访问进行了优化 随机访问较慢 可以当做栈Stack或者队列Queue来使用
LinkedList<String> products=new LinkedList<String>();
String p1=new String("六角螺母");
products.add(p1); //将 pi 对象添加到 LinkedList 集合中
LinkedList 类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除元素。
需要频繁向集合中插入和删除元素时,使用 LinkedList 类比 ArrayList 类效果高,
但是 LinkedList 类随机访问元素的速度则相对较慢。这里的随机访问是指检索集合中特定索引位置的元素。
包含了除了Collection接口中的方法和List接口中的方法之外的一些其他方法
void addFirst(E e) ---将指定元素添加到此集合的开头
void addLast(E e) ---将指定元素添加到此集合的末尾
E getFirst()--- 返回此集合的第一个元素
E getLast()---返回此集合的最后一个元素
E removeFirst()---删除此集合中的第一个元素
E removeLast()---删除此集合中的最后一个元素
---》Map:HashMap 键值对 键值不可重复----
Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。
其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。
---》HashMap 类按哈希算法来存取键对象
HashMap users=new HashMap()
users.put("11","张浩太"); //将学生信息键值对存储到Map中
Iterator it=users.keySet().iterator();
while(it.hasNext())
{
//遍历 Map
Object key=it.next();//键值
Object val=users.get(key);
System.out.println("学号:"+key+",姓名:"+val);
}
Scanner input=new Scanner(System.in);
System.out.println("请输入要删除的学号:");
int num=input.nextInt();
if(users.containsKey(String.valueOf(num)))
{ //判断是否包含指定键
users.remove(String.valueOf(num)); //如果包含就删除
}
else
{
System.out.println("该学生不存在!");
}
it=users.keySet().iterator();
while(it.hasNext())
{
Object key=it.next();
Object val=users.get(key);
System.out.println("学号:"+key+",姓名:"+val);
}
---》TreeMap 类可以对键对象进行排序。
Map接口中提供的方法:
V get(Object key)---返回 Map 集合中指定键对象所对应的值。V 表示值的数据类型
V put(K key, V value)--- 向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null
V remove(Object key)---从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如 果没有,则返回null
Set entrySet()---返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据 类型为 Map.Entry
Set keySet()---返回 Map 集合中所有键对象的 Set 集合
Java集合
最新推荐文章于 2022-05-10 18:07:43 发布