一.类集框架的主要接口
在整个java类集中最常使用的类集接口是:Collection,List,Set,Map,Iterator,ListIterator,Enumeration,SortedSet,SortedMap,Queue,Map.Entry,这些接口的具体用法这里不一一解释了,主要讨论一下三种。
接口 | 描述 |
List | 是存放一组单值的最大接口,所谓的单值是指集合中的每个元素都是一个对,一般很少会直接使用此接口进行操作 |
Set | 是Collection接口的子类,没有对Collection接口进行扩充,里面不允许存放重复内容 |
Map | Map是存放一堆值的最大接口,即接口中的每个元素都是一对,以key----》value的形式保存 |
这些接口中本身是存在继承关系的,其中部分接口的继承关系如图:
提示:在java中凡是以Sorted开头的接口都属于排序的接口,如SortedSet,SortedMap
二.List接口
List接口是Colletion的子接口,它本身也Collection的方法进行了扩充 ,里面可以保存各个重复的内容。
定义:
public interface List<E> extends Collection<E>
List接口的常用子类:ArrayList,Vector,LinkedList
ArrayList:
增加数据:
可以直接使用Collection接口中定义的方法
(1)public boolean add(E o);
(2)public boolean addAll(Collection<? extends E>c); //添加一组元素
或者使用List扩充的方法
public void add(int index,E element); //在指定位置增加
删除数据:
可以直接使用Collection接口中定义的方法
(1)public boolean remove(Object o); //删除一个对象
(2)public boolean removeAll(Collection<?>c); //删除一组元素
或者使用List扩充的方法
public E remove(int index); //在指定位置删除
输出数据:
(1)使用循环遍历,利用下标索引的方式进行元素的获取,在Collection接口中有获取长度的方法size()
(2)使用foreach进行遍历(这种适用于不通过下标索引进行数据操作)
实例操作一:
package com.jichu_08_list;
import java.util.*;
public class Text {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<String>(); //声明并实例化对象
List<String> list=new ArrayList<String>(); //声明并实例化对象
/*
* 增加数据
*/
list.add("Hello"); //添加数据
list.add(0,"World"); //在指定的位置进行添加
coll.add("fbm"); //给collection接口实例化的对象进行添加数据
coll.add("123");
list.addAll(coll); //添加一组数据
list.addAll(0,coll); //给指定位置添加一组数据
System.out.println(list);
System.out.println("---------------------------------------");
/*
* 删除数据
*/
// 对list进行操作
list.remove(2); //删除一个数据
list.removeAll(coll); //删除一组对象
System.out.println(list);
/*
* 数据输出
*/
//第一种
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//第二种
for (String string : list) {
System.out.println(string);
}
}}
实例操作二:
将集合变为对象数组
package com.jichu_08_list;
import java.util.*;
public class Text {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<String>(); //声明并实例化对象
List<String> list=new ArrayList<String>(); //声明并实例化对象
/*
* 增加数据
*/
list.add("Hello"); //添加数据
list.add(0,"World"); //在指定的位置进行添加
coll.add("fbm"); //给collection接口实例化的对象进行添加数据
coll.add("123");
list.addAll(coll); //添加一组数据
list.addAll(0,coll); //给指定位置添加一组数据
System.out.println(list);
System.out.println("---------------------------------------");
/*
* 将集合变为对象数组
*/
Object ob[]=list.toArray(); //直接返回对象数组
for (int i = 0; i < ob.length; i++) {
String temp=(String) ob[i];
System.out.print(temp+",");
}}
}
运行结果:
实例操作三:
在list中还可以截取集合,查找元素位置
(1).截取元素的方法,subList(start,end),start开始位置,end结束位置
package Text;
import java.util.ArrayList;
import java.util.List;
import com.entity.User;
import com.service.impl.UserServiceImpl;
public class text {
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
//截取元素的方法,subList(start,end)
//start开始位置,end结束位置
list=list.subList(1,4);
System.out.println(list);
}
}
(2).获取元素的下标:
方法:indexOf(元素);