Collection
/*
到目前位置,我们学习过哪些可以存储元素的容器:
1、数组
优点:不同的数组可以存储不同数据类型的元素
缺点:长度不可变
2、StringBuffer|StringBuilder
优点:长度可以跟随元素的数量而改变
缺点:里面的元素只有一种字符数据类型
我们今后会根据元素的是否重复,存储和取出的顺序等来决定我们该使用什么样的容器来进行存储
根据我现实生活中经验来说,容器应该是丰富多彩的,多种多样的
java应该要使用若干个不同的类来描述不同的容器,表示不同容器的特点。
容器应该都有若杠共同的特点,都可以装东西等。
那么java中提供的这些类中成员应该也会有相同的部分,那我们将其向上提取,由继承或实现来构建关系
这样我们就可以得到一个继承体系。
Collection【接口】:
我们通过帮助文档发现,Collection是一个接口,不能直接new对象
根据元素是否可以发生重复,继续分类
- List【接口】元素可以发生重复,且有索引的概念
ArrayList
- Set【接口】元素不可以发生重复,没有索引
借助ArrayList子类对象来使用Collection接口中的方法
学习java中任意一个集合的步骤:
1、创建相关集合对象
2、创建元素对象
3、将元素添加到集合中
4、遍历集合
Collection中的成员方法:
boolean add(E e)
boolean remove(Object o)
void clear()
boolean contains(Object o)
boolean isEmpty()
int size()
Collection c1 = new ArrayList();
c1.add(100);
c1.add(true);
c1.add(12.34);
c1.add(1000L);
c1.add(100);
c1.add(12.34);
c1.remove(100);
System.out.println("c1: " + c1);
System.out.println("-----------------------------------------");
System.out.println("-----------------------------------------");
System.out.println(c1.contains(12.34));
System.out.println("-----------------------------------------");
System.out.println(c1.isEmpty());
System.out.println("-----------------------------------------");
System.out.println(c1.size());
boolean addAll(Collection c)
boolean removeAll(Collection c)
boolean containsAll(Collection c)
boolean retainAll(Collection c)
/*
如何遍历一个Collection集合
1、Object[] toArray() 把集合转成数组,可以实现集合的遍历
*/
public class CollectionDemo3 {
public static void main(String[] args) {
Collection c1 = new ArrayList();
c1.add("hello");
c1.add("world");
c1.add("java");
c1.add("hadoop");
c1.add("world");
Object[] objects = c1.toArray();
for(int i=0;i<objects.length;i++){
Object obj = objects[i];
String s = (String)obj;
System.out.println(s+"-"+s.length());
}
迭代器
while (iterator.hasNext()){
Object obj = iterator.next();
String s = (String)obj;
System.out.println(s+"-"+s.length());
}
集合遍历
Iterator iterator = c1.iterator();
while (iterator.hasNext()){
Object obj = iterator.next();
Student s = (Student) obj;
System.out.println(s.getName()+"-"+s.getAge());
}
list集合
public class ListDemo1 {
public static void main(String[] args) {
List list1 = new ArrayList();
list1.add("hello");
list1.add("apple");
list1.add("banana");
list1.add("watermelon");
list1.add("mango");
System.out.println("list1: " + list1);
System.out.println("==================================");
list1.add(2,"grape");
System.out.println("list1: " + list1);
System.out.println("==================================");
System.out.println(list1.remove(2));
System.out.println("list1: " + list1);
System.out.println("==================================");
System.out.println(list1.get(3));
System.out.println("list1: " + list1);
System.out.println("==================================");
System.out.println(list1.set(3, "orange"));
System.out.println("list1: " + list1);
System.out.println("==================================");
ListIterator listIterator = list1.listIterator();
while (listIterator.hasNext()){
System.out.println(listIterator.next());
}
System.out.println("==================================");
while (listIterator.hasPrevious()){
System.out.println(listIterator.previous());
}
public class ListDemo2 {
public static void main(String[] args) {
List list1 = new ArrayList();
list1.add("hello");
list1.add("apple");
list1.add("banana");
list1.add("watermelon");
list1.add("mango");
list1.add("peach");
list1.add("pear");
System.out.println("list1: " + list1);
System.out.println("======================================");
ListIterator listIterator = list1.listIterator();
while (listIterator.hasNext()) {
Object obj = listIterator.next();
String s = (String) obj;
if ("mango".equals(s)) {
listIterator.add("java");
}
}
System.out.println("list1: " + list1);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)