集合框架

之前我们学到了数组,为我们批量处理数据提供了便利,但是数组的长度不可变,在实际的生活中,我们处理的数据大小都是未知的,可变的。所以就引入了集合。 集合存储的数据类型可以不同,长度可变,空间也不固定,用于储存,检索和传输对象。不能保存基础数据类型的数据,比如int,只能装箱变为Integer类型。

一:最高级别Collection接口(单列数据)

1.List接口是Collection的子接口,List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。

1.1.ArrayList类是接口List的实现类,在我们处理集合时,增删不频繁时使用,查询多的时候使用。

1.2.LinkedList类也是接口List的实现类。增删多的时候使用。因为它内部双向循环列表,所以查询时也比较费时。

2.Set接口是Collection的子接口,Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。

2.1.HashSet元素自动排序,不可有重复的内容。

二:最高级别Map 1,HashMap实现了Map接口,继承AbstractMap

三:下面是一些集合的基础操作代码(ArrayList)

public static void main(String[] args) {
   List li=new ArrayList();
   //添加元素add(Object)
   li.add("吕布"); li.add("赵云");  li.add("典韦");li.add("关羽");
   li.add("马超"); li.add("黄忠"); li.add("张飞");
   System.out.println(li);
   //指定位置添加元素add(int,Object)
   li.add(4,"于禁");
   System.out.println(li);
   //用指定元素代替指定位置上的元素set(int,Object)
   li.set(5,"徐晃");
   System.out.println(li);
   //判断列表中是否有指定元素,返回值是boolean(contains(Object))
   System.out.println(li.contains("马超"));
   //返回指定位置上的元素get(int index)
   System.out.println(li.get(4));
   //返回指定元素的第一次索引值,如果没有出现,就返回为-1(indexOf(Object))
   System.out.println(li.indexOf("曹操"));
   //通过元素下标来移除元素remove(int).通过元素值来移除元素remove(Object)
   System.out.println(li.remove(4));
   //通过Collection接口的iterator方法遍历集合,并且通过他的remove方法移除元素
   Iterator it=li.iterator();
   while(it.hasNext()){
    if(it.next().equals("关羽")){
     it.remove();
    } 
   }
   System.out.print(li);
   li.set(5, "刘备");
   System.out.print(li);
}

LinkedList集合基础操作

public static void main(String[] args) {
  // TODO Auto-generated method stub
   LinkedList list=new LinkedList();
  //添加元素add(Object)

list.add("张山"); list.add("李四");list.add("王五");list.add(1,"徐六");
  System.out.println(list);
  System.out.println(list.size());
  //通过元素下标来移除元素remove(int).通过元素值来移除元素remove(Object)
  list.remove("王五");
  System.out.println(list);
  //list.clear();
  System.out.println(list);
  Iterator it=list.iterator();
  while(it.hasNext()){
   System.out.print(it.next());
  }
  ////返回指定元素的第一次索引值,如果没有出现,就返回为-1(indexOf(Object))
  System.out.println(list.indexOf("张山"));
  //将元素推入此列表所表示的堆栈。换句话说,将该元素插入此列表的开头。push(Object)
  list.push("刘七");
  System.out.println(list);
  //从此列表所表示的堆栈处弹出一个元素。换句话说,移除并返回此列表的第一个元素。pop()
  list.pop();
  System.out.println(list);
  //将制定位置的元素替代set(int,Object)
  list.set(1, "刘能");
  System.out.println(list);
  //移除集合的第一个元素removeFirst()
  list.removeFirst();
  System.out.println(list);
  //移除集合的最后一个元素removeFirst()
  list.removeLast();
  System.out.println(list);
 }

原文地址:https://www.cnblogs.com/Kevin-Ma/p/5410256.html