Java list集合
Java的集合:
Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用 的数据结构,如栈、队列等。除此之外,Java集合还可用于保存具有映射关系的关联 数组。Java集合大致可分为List、Set、Queue和Map四种体系,其中List代表有序、 重复的集合;Set代表无序、不可重复的集合;而Map则代表具有映射关系的集合, Java5又增加了Queue体系集合,代表一种队列集合实现。
集合的概述:
我们将很多东西拼凑在一起,将题目称为集合
迭代器: 其实就是取出元素的方式(只能判断,取出,移除,无法增加)
我们可以把Java中的集合看成是一个工具,一个装东西的工具,就比如容器,可以储存任意数量的具有共同属性的对象
集合是储存对象的,长度可变,可以封装不同的对象
集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存 的是对象的引用变量);而集合里只能保存对象(实际上只是保存对象的引用变量, 但通常习惯上认为集合里保存的是对象)。
Java的集合类主要由两个接口派生而出: Collection和Map, Collection和Map是Java 集合框架的根接口,这两个接口又包含了一些子接口或实现类。如下所示是 Java集合 简单结构图
集合的作用:
在类的内部,对数据进行组织;
简单而快速的搜索大数量的条目;
有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或者删除有关元素
有的集合接口,提供了映射关系,可以通过关键字key去快速查找对应的唯一对象,而这个关键字可以是任意类型
1.List:元素是有序的,元素可以重复.因为改集合体系有索引.
ArrayList:底层的数据结构使用的是数组结构 ,特点:查询速度快,但是增删慢.线程不同步
LinkedList:底层使用的是;链表数据结构,特点:增删速度快,查寻速度慢.
Vector:底层的数据结构使用的是数组结构 ,.线程同步,速度慢,被ArrayList替代l
list:特有方法,凡是可以操作角标的方法都是该体系特有的方法
1.1list
public class ListDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加
//索引,从0算起,0对1,1对2,2对3,3对4,4对5
list.add(1);//0
list.add(2);//1
list.add(3);//2
list.add(4);//3
list.add(5);//4
list.add(6);
list.add(2);
list.add(2);
System.out.println(list);//println换行
list.add(4,7);
System.out.println(list);
//索引,从0算起,0对1,1对2,2对3,3对4,4对5
//修改
list.set(4,8);
System.out.println(list);
//移除元素
list.remove(1);
list.remove(Integer.valueOf(6));
System.out.println(list);
//System.out.println(list);
List<Integer> list1= new ArrayList<>();
list1.add(7);
list1.add(8);
list1.add(9);
list.addAll(list1);//添加多个
System.out.println(list);
//list.removeAll(list1);//移除多个
//System.out.println(list);
System.out.println(list);
//System.out.println(list);
List<Integer> list1= new ArrayList<>();
list1.add(7);
list1.add(8);
list1.add(9);
list.addAll(list1);//添加多个
System.out.println(list);
//list.removeAll(list1);//移除多个
//System.out.println(list);
//遍历(也就是循环)
//size()返回List中元素的个数
//get(int index)根据索引获取元素
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i)+"\t");
}
System.out.println();
//2
for (Integer integer : list) {
System.out.print(integer+"\t");
}
System.out.println();
//迭代器
Iterator<Integer> iterator=list.iterator();
while (iterator.hasNext()){
int inta = iterator.next();
System.out.print(inta+"\t");//制表符
}
System.out.println();
for (Iterator<Integer> iterator2 = list.iterator(); iterator2.hasNext();) {
int inta = iterator2.next();
System.out.print(inta+"\t");
}
System.out.println();
//查找相关的办法
System.out.println(list.indexOf(2));//没有的就是 -1,,有的按索引来算输入9,看9的位置在哪,再索引算
System.out.println(list.lastIndexOf(2));//正常计算
System.out.println(list.contains(6));//查询列中有的值,为真true,,输入一个没有的值6,为false
System.out.println(list.containsAll(list1));//找一段
//截取子集合
List<Integer> list3=list.subList(1, 5);//[1,5)[闭 开)索引
System.out.println(list3);
//判断是否为空集合
System.out.println(list.isEmpty());//fales
//清空list
list.clear();//清空
System.out.println(list.isEmpty());//判断是否为空
System.out.println(list);//[]空
}
}
添加元素
移除元素
迭代器遍
历循环
等等输出结果: