JAVA语言中List集合,Set集合,Map和String类的概念理解

一.List集合

1.ArrayList就是一个动态的数组

2. LinkedList基于链表的存储结构

 特点:

 1.ArrayList查询快、增删慢

 2.LinkedList查询慢、增删快 List集合是有序的,且元素可以重复

public class Text01 {
    public static  void main(String[] args){
        //List遍历
        List<String> list=new ArrayList<>();
        list.add("c");
        list.add("b");
        list.add("a");
        list.add("d");
        System.out.println(list);
        System.out.println(list.get(1));
        System.out.println("list遍历集合");

//        for (int i=0;i<list.size();i++){
//            String s=list.get(i);
//            System.out.println(s);
//        }
        for (String s:list){
            System.out.println(s);
        }
}

二.Set集合

1.Set集合它所存储的元素是不可重复的,并 且元素都是无序的 

2.Set集合不能直接获取某个元素,只能通 过迭代器遍历元素。

3. 通俗的理解为小学生的书包,直接把元素扔进去, 是没有任何顺序的,所以元素不能重复。

public class Text01 {
    public static  void main(String[] args){
        

        //HashSet
        Set<String> set=new HashSet<>();
        set.add("z");
        set.add("y");
        set.add("x");
        set.add("z");
        System.out.println(set);
        System.out.println("Set集合的遍历");
        Iterator<String> iterator=set.iterator();
        while (iterator.hasNext()){
            String s=iterator.next();
            System.out.println(s);
        }
     }

注:List和Set的顶层接口 都是Collection

三.Map

1.基于键值对形式存储的数据结构 

2.在Map中key是不允许重复的,value值 是可以重复。 

3.Map会把所有的key存放一个set集合中。
 

public class Text01 {
    public static  void main(String[] args){
     

        Map<String,Object> map=new HashMap<>();
        map.put("name","李四");
        map.put("age",20);
        map.put("sex","男");
        map.put("weight",120);
        System.out.println(map);
        System.out.println("Map的遍历:");
        //获取map中所有ke值的set集合
        Set<String> keySet=map.keySet();
        Iterator<String> ite=keySet.iterator();
        while (ite.hasNext()){
            //获取key的值
            String key=ite.next();
            Object value=map.get(key);
            System.out.println(key+"-----"+value);
        }
    }
}

总结:

 四.String类

1.字符串是常量:她们的值在创建之后不能更改,String类定义了一个字符组常量。一旦赋值就不能更改字符串的值

2.字符串修改值的时候,不是修改字符的本身,而是重新修改字符串的地址引用

3.经常需要变化的字符串建议使用 StringBuffer定义:

java有垃圾回收机制,自动释放内存资源

 public static void main(String[] args){
       /*
       1.字符串是常量:她们的值在创建之后不能更改,String类定义了一个字符组常量。一旦赋值就不能更改字符串的值
        2.字符串修改值的时候,不是修改字符的本身,而是重新修改字符串的地址引用
        3.经常需要变化的字符串建议使用 StringBuffer定义:
        java有垃圾回收机制,自动释放内存资源
         */
       String str=new String("abc");
       //在内存中查找是否存在lucy这个字符串,不存在创建一个lucy字符串,然后把该字符串地址放入s1栈内存中
       String s1="lucy";
        //在内存中查找是否存在lucy这个字符串,存在创建一个lucy字符串,则把把该字符串地址放入s2栈内存中
        String s2="lucy";
        System.out.println(s1==s2);
        //不是修改s1地址映射的字符串内容,重新在内存中查找字符串,存在就赋值,不存在就创建后赋地址
        s1="jack";





//        for(int i=0;i<100000;i++){
//            s1=s1+i;
//        }

//        StringBuffer sb1=new StringBuffer("张三");
//        sb1.append("xxx");
//        System.out.println(sb1);
    }

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值