java集合

目录
Collection

常用方法:

  • boolean add(E e)
  • boolean addAll(Collection c)
  • void clear() 清除集合里的所有元素,将集合长度变为0
  • boolean contains(E e)
  • boolean containsAll(Collection c)
  • boolean isEmpty()
  • Iterator iterator() 返回一个Iterator对象用于遍历集合
  • boolean remove(E e)
  • boolean removeAll(Collection)
  • boolean retainAll(Collection c) 从集合中删除集合c里不包含的元素
  • int size()
  • Object toArray() 将集合转换为数组
import java.util.*;
  class  CollectionDemo
  {
      public static void main(String[] args) 
      {
          ArrayList tree= new ArrayList();
          tree.add("杨树");
          tree.add("桃树");
          tree.add("柳树");
          tree.add("梨树");
          ArrayList fruiter =new ArrayList();
          fruiter.add("桃树");
          fruiter.add("葡萄树");
          fruiter.add("梨树");
          fruiter.add("杏树");
          tree.retainAll(fruiter);
          System.out.println(tree);
      }
  }
  //运行结果 [桃树, 梨树]
Iterator

常用方法

  • boolean hasNext()
  • Object next() 返回集合里的下一个元素
  • void remove()返回集合里next()上一次返回的元素
import java.util.*;
 class  CollectionDemo
 {
     public static void main(String[] args) 
     {
         ArrayList tree= new ArrayList();
         tree.add("杨树");
         tree.add("桃树");
         tree.add("柳树");
         tree.add("梨树");
         Iterator it=tree.iterator();
         while (it.hasNext())
         {
             System.out.println(it.next());
         }
     }
 }
 /*
 杨树
 桃树
 柳树
 梨树
 */
List

 常用方法

  • void add(int index,E element)
  • boolean addAll(int index,Collection c)
  • E get(int index) 返回index索引的元素
  • int indexOf(Object o)返回元素o第一次出现的索引
  • int lastIndexOf(Object o)
  • Object remove(int index)删除并返回index索引处的元
  • E set(int index,E element)将索引index的元素替换为element并返回新元素。
  • List subList(int fromIndex,int toIndex)包含头不包含尾
ListIterator

ListIterator接口

ListIterator是接口Iterator子接口

方法摘要

  • boolean hasPrevious() 返回该迭代器关联的集合是否还有上一个元素
  • E previous返回列表的前一个元素
  • void add(E e)将指定元素插入列表
  • void remove()
import java.util.*;
class  CollectionDemo
{
    public static void main(String[] args) 
    {
        ArrayList tree= new ArrayList();
        tree.add("杨树");
        tree.add("桃树");
        tree.add("柳树");
        tree.add("梨树");
        ListIterator li=tree.listIterator();
        while (li.hasNext())
        {
            System.out.println(li.next());
        }
        while (li.hasPrevious())
        {
            System.out.println(li.previous());
        }

    }
}
ArrayList
LinkedList

LinkedList特有方法

  • addFirst()
  • addLast()
  • getFirst()
  • getLast()
  • removeFirst()
  • removeLast()获取元素并且删除元素如果集合中没有元素,会出现NoSuchElementException异常
  • offerFirst()
  • offerLast()
  • peekFirst()
  • peekLast()
  • pollFirst()
  • pollLast()获取元素并且删除元素如果没有元素则返回null
import java.util.LinkedList;

public class QueueDemo {
    public static void main(String[] args){
        Queue q =new Queue();
        for(int x=0;x<4;x++){
            q.myAdd("abcd"+x);
        }
        while(!q.isNull()){
            System.out.println(q.get());
        }
    }

}
class Queue{
    private LinkedList<String> link =new LinkedList<String>();
    public void myAdd(Object obj){
        link.addFirst((String) obj);
    }
    public Object get(){
        return link.removeLast();
    }
    public boolean isNull(){
        return link.isEmpty();
    }
}
Stack
Vector

Vector:底层是数组数据结构。线程同步,被ArrayList替代。可变数组100%延长。

Vector通过枚举实现遍历

import java.util.Enumeration;
 import java.util.Vector;
 
 public class VectorDemo {
     public static void main(String[] args){
         Vector<String> v =new Vector<String>();
         v.add("abc");
         v.add("def");
         v.add("gh");
         Enumeration<String> e =v.elements();
         while(e.hasMoreElements()){
             System.out.println(e.nextElement());
         }
     }
 }
Properties

 Properties表示了一个持久的属性集。

常用方法:

  1. Object setProperty(String key,String value)
  2. String getProperty(String key) 根据键值获取值
  3. Set<String> stringPropertyNames() 返回属性列表的键值集
  4. void list(PrintStream out)将属性列表输出到指定的输出流中
  5. void list(PrintWriter out)将属性列表输出到指定的输出流中
  6. void load(InputStream isStream)从输入流中读取属性列表
  7. void load(Reader reader)从输入字符流中读取属性列表
  8. void store(OutputStream out,String coments)
  9. void store(Writer writer,String comments)
Arrays

1.asList方法 :可以将数组转换为List集合。注:转换为List集合不能使用List的增删方法。

如果数组中的元素都是对象,那么变成集合时。数组中的元素就直接转换成集合
如果数组中的元素都是基本数据类型 那么会将该数组作为集合中的元素存在

import java.util.Arrays;
 import java.util.List;
 
 public class ArraysDemo {
     public static void main(String[] args){
         String[] arr ={"abc","cc","kkkk"};
         
         List<String> li =Arrays.asList(arr);
         
         System.out.println(li);//[abc, cc, kkkk]
         int[] arr2 ={2,3,5};
         List li2 =Arrays.asList(arr2);
         
         System.out.println(li2);//[[I@6bade9]
         
         System.out.println(li.contains("abc"));//true
     }
 }

2.sort方法 可以对基本数据类型的数组或者数组的一部分进行排序 也可以对对象进行自然排序

 示例:已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;

public class Test2 {
    public static void main(String[] args){
        FileReader fr =null;
        FileWriter fw =null;
        try{
            fr =new FileReader("a.txt");
            fw =new FileWriter("b.txt");
            char[] buf =new char[1024];
            int i =0;
            while((i=fr.read(buf))!=-1){
                Arrays.sort(buf,0,i);
                fw.write(buf);
            }
        }catch(IOException e){
            e.printStackTrace();
        }finally{
            try{
                if(fr!=null)
                    fr.close();
            }catch(IOException e){
                e.printStackTrace();
            }try{
                if(fw!=null)
                    fw.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

}

3.toString()方法 数组的字符串表现形式

原文地址:https://www.cnblogs.com/malinkang/p/3037941.html