java中List的用法的详细介绍

java中List的用法的详细介绍

一:List的介绍

List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类,List中的元素是有序排列的而且可重复,所以被称为是序列。
List可以精确的控制每个元素的插入位置,或删除某个位置元素,它的实现类ArrayList底层是由数组实现的。

二:List的初始化(两种方法)

方式一:
  ArrayList<String> list = new ArrayList<String>();
  String str01 = String("str01");
  String str02 = String("str02");
  list.add(str01);
  list.add(str02);
方式二:
   ArrayList<String> list = new ArrayList<String>(){{add("str01"); add("str02");}};  

三:List的常用方法

代码【适用于方法1-17】:
List<String> name=new ArrayList<String>(){{
add("我");
add("们");
add("都");
add("是");
add("我");
}
};
List<String> name1=new ArrayList<String>(){{
add("我");
add("们");
add("都");
add("是");
add("ni");
add("wo");
add("ta");
}
};


1.add
name.add("一家人");//向滚动列表的末尾添加指定的项
name.add(0, "1");//向滚动列表中索引指示的位置添加指定的项
2.addAll
name.addAll(name1);//将列表name1加至name末尾
name.addAll(0, name1);//将列表name1加至name索引指示的位置
3.remove
name.remove(0);//从此滚动列表中移除指定位置处的项
name.remove("我");//从列表中移除项的第一次出现
4.removeAll
name.removeAll(name);//从列表中移除所有项
5.clear
name.clear();//从列表中移除所有项
6.contains
name.contains("我");//列表中是否包含
7.containsAll
name1.containsAll(name1);//列表A是否包含列表B
8.equals
name.equals(name1);//两个列表是否一样
9.get
name.get(1);//获得列表中索引位置的值
10.isEmpty
name.isEmpty();//列表是否为空
11.indexOf 
name.indexOf("我");//获得传入值的第一个位置
12.lastIndexOf
name.lastIndexOf("我");//获得传入值的最后一个位置
13.subList
name.subList(1, 2);//截取列表从索引1到索引2
14.toArray
name.toArray();//将List转换成数组
15.toString
name.toString();//将List转换为字符可打印出来
16.size
name.size();//获取List的大小
17.listIterator
ListIterator lit = name.listIterator();  
while(lit.hasNext())  
    {  
        System.out.println(lit.next());  
         lit.add("-----分隔符-----");  
    }  
System.out.println("=====下面开始反向迭代=====");  
while(lit.hasPrevious())  
    {  
        System.out.println(lit.previous());  
    }
18.retainAll
关于modCount变量的说明AbstractList包含一个modCount变量,它的初始值是0,当集合中的内容每被修改一次时(调用add(), remove()等方法),modCount加1
关于返回值的说明:如果集合A数组的大小没有改变,则返回false。如果集合A和集合B是完全相同的集合,也会返回false。
public static void main(String[] args) {
ArrayList<String> listA= new ArrayList<String>();
        listA.add("Tom");
        ArrayList<String> listB= new ArrayList<String>();
        listB.add("Tom");
        System.out.println(listA.retainAll(listB)); //false
}
即使两个集合没有交集,也会返回true。
public static void main(String[] args) {
 ArrayList<String> listA= new ArrayList<String>();
 listA.add("Tom");
 ArrayList<String> listB= new ArrayList<String>();
 listB.add("Jack");
        System.out.println(listA.retainAll(listB));//true
}
所以,我们要记住:当集合A的大小改变的时候返回的是True,大小没有改变的时候返回的是False。
正确的使用 retainAll 方法
public static void main(String[] args) {
ArrayList<String> listA= new ArrayList<String>();
listA.add("Tom");
ArrayList<String> listB= new ArrayList<String>();
listB.add("Tom");
listA.retainAll(listB);
if(listA.size()>0){
System.out.println("这两个集合有相同的交集");
 }else{
 System.out.println("这两个集合没有相同的交集");
   }
 }
a、首先调用retainAll的方法
b、通过判断集合的大小,来确定是否存在交集。不能通过方法返回的True和False来判断

以上的方法都是我自己尝试过了的哦,如果正在看的你发现了什么错误,请提醒我一下哦。
方式一:
  ArrayList<String> list = new ArrayList<String>();
  String str01 = String("str01");
  String str02 = String("str02");
  list.add(str01);
  list.add(str02);
方式二:
   ArrayList<String> list = new ArrayList<String>(){{add("str01"); add("str02");}};  

猜你喜欢

转载自blog.csdn.net/tian_tian2/article/details/78112452
今日推荐