Java 集合

集合接口

Collection 接口

Collection是最基本的集合接口,一个Collection代表一组Object,Java不提供直接继承自Collection的类

只提供继承于子接口(如Lis和Set)

List 接口

List接口是一个有序的Collection,是从此接口能够精确地控制每个元素插入的位置,

能够通过索引(元素在List中位置,类似数组下标来访问List中的元素,第一个元素索引位置为0,而且允许有相同的

元素

Set

Set具有与Collection完全一样的接口,只是行为上不同,Set不保存重复的数据;

Map

将唯一的键映射到值;


Set和List的区别

  • 1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

  • 2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>

  • 3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector>

ArrayList

该类是实现了List接口,实现了可变大小的数组,随机访问和遍历元素是,提供跟好的性能,该类是非同步的

,在多线程的情况下不要使用。

显示集合中的元素:

实例:

import java.util.*;

public class Test{

public static void main (String [] args) {

 List <String>  lsit= new ArrayList<String>();

lsit.add("Hello");

list.add("Word");

//第一种遍历方法使用foreach遍历

for(String li :list){

System.out.println(li);

}

//第二种把链表变为数组相关内容进行遍历

String [] strArray= new String[list.size()];

list.toArray(strArray);

for(int i = 0 ; i<strArray.length;i++){

System.out.println(strArray[i]);

}

//第三种遍历 使用迭代器进行相关遍历

Iterator<String> ite=list.iterator();

while(ite.hasNext()){

//判断下一个元素之后有值

  System.out.println(ite.next());

}

}

遍历 Map

import java.util.*;
 
public class Test{
     public static void main(String[] args) {
      Map<String, String> map = new HashMap<String, String>();
      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");
      
      //第一种:普遍使用,二次取值
      System.out.println("通过Map.keySet遍历key和value:");
      for (String key : map.keySet()) {
       System.out.println("key= "+ key + " and value= " + map.get(key));
      }
      
      //第二种
      System.out.println("通过Map.entrySet使用iterator遍历key和value:");
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
       Map.Entry<String, String> entry = it.next();
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
      
      //第三种:推荐,尤其是容量大时
      System.out.println("通过Map.entrySet遍历key和value");
      for (Map.Entry<String, String> entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
    
      //第四种
      System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }
     }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值