当前位置: 首页 > news >正文

集合总结(Java)

 Collection

常用方法
package com.test01;import java.util.ArrayList;
import java.util.Collection;
/*添加元素---boolean add(E e);移除元素---boolean remove(Object c);判断元素是否存在---boolean contains(Object c);*/
public class S {public static void main(String[] args) {
//        创建Collectiom的对象Collection<String> s = new ArrayList<>();//        添加元素---boolean add(E e);s.add("Hello");s.add("world");//        重写toString()方法System.out.println(s);//        移除元素---boolean remove(Object c);s.remove("Hello");System.out.println(s);//      判断元素是否存在---boolean contains(Object c);System.out.println(s.contains("world"));//        判断集合是否为空 boolean isEmpty();System.out.println(s.isEmpty());//        返回长度---int size();System.out.println(s.size());//        清空元素---void claer();s.clear();}
}
遍历方法
package com.test01;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class S {public static void main(String[] args) {
//        创建Collection的对象Collection<String> s = new ArrayList<>();s.add("1");s.add("2");s.add("3");
//        返回集合中元素的迭代器,通过集合中iterator()方法得到Iterator<String> it = s.iterator();//        通用遍历方法
//        boolean hasNext()----如果集合中有更多的元素,则返回true
//        E next()----返回迭代器中的下一个元素while(it.hasNext()){String a = it.next();System.out.println(a);}}
}

List

常用方法

遍历与Collection类似//可能会出现并发修改异常

多了一种遍历方法

快捷键为list.fori,回车

package com.test01;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;public class S {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("3");//        void add(int idnex,E c)----在指定索引添加元素list.add(1,"100");//        也是重写了toString()方法System.out.println(list);//        E remove(int x)-----删除指定元素,并返回此元素System.out.println(list.remove(1));System.out.println(list);//        E set(int x,E a)----修改指定元素,并返回此元素System.out.println(list.set(1,"200"));System.out.println(list);//        E get(int x)----得到指定元素System.out.println(list.get(2));for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}}
}
ListIterato:列表迭代器
package com.test01;import java.util.*;public class S {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("3");ListIterator<String> it = list.listIterator();//        //正向,不常用
//        while(it.hasNext()){
//            System.out.println(it.next());
//        }
//        System.out.println("----------");
//
//        //反向,不常用
//        while(it.hasPrevious()){
//            System.out.println(it.previous());
//        }
//
//        System.out.println("--------");//add()方法,重点掌握while(it.hasNext()){String s = it.next();if(s.equals("2")){it.add("10");}}System.out.println(list);}
}
增强for
public class S {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("4");for(String i : list){System.out.println(i);}}
}
ArrayList----底层是数组
LinkedList
LinkedList---底层是链表
public class dome {public static void main(String[] args) {LinkedList<String> linkedList = new LinkedList<>();//boolean addFirst(E e)在头加入元素,removeFirst()同理,getFirst()linkedList.addFirst("1");//在尾加入元素,removeLast()同理,getLast()linkedList.addLast("3");for(String it : linkedList){System.out.println(it);}}
}

HasSet

需要重写hascode()

底层是哈希表

3种遍历不能用普通循环

不保证存储和输出顺序一致

LinkedKist
/*存储和输出顺序一致保证唯一性*/
public class S {public static void main(String[] args) {LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();linkedHashSet.add("1");linkedHashSet.add("2");linkedHashSet.add("3");linkedHashSet.add("3");for(String it : linkedHashSet){System.out.println(it);}}
}
TreeSet
/*元素有序,这里的有序是按照一定的规则进行排序,取决于构造方法,默认根据自然元素进行排序不能用普通for元素具有唯一性*/
public class S {public static void main(String[] args) {TreeSet<Integer> integers = new TreeSet<>();integers.add(1);integers.add(2);integers.add(2);integers.add(4);for(Integer it : integers){System.out.println(it);}}
}
 比较器Comparable的使用
public class Student implements Comparable<Student>{private String name;private int age;public Student(){}public Student(String name,int age){this.name=name;this.age=age;}public void show(){System.out.println(name+age+"岁");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic int compareTo(Student o) {
//        return 0;不加入
//        return 1;加入
//        return -1;加前面int num = this.age-o.age;int num1 = num==0?this.name.compareTo(o.name):num;return num1;}
}
public class dome {public static void main(String[] args) {TreeSet<Student> treeSet = new TreeSet<>();
/*    //可以用这个代替TreeSet<Student> treeSet = new TreeSet<>(new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {int num = o1.getAge()-o2.getAge();int num1 = num==0?o1.getName().compareTo(o2.getName()):num;return num1;}});
*/Student s1 = new Student("lihua",10);Student s2 = new Student("yaoming",30);Student s3 = new Student("hh",20);Student s4 = new Student("hh",20);treeSet.add(s1);treeSet.add(s2);treeSet.add(s3);treeSet.add(s4);for(Student it : treeSet){System.out.println(it.getName()+","+it.getAge());}}
}

http://www.lryc.cn/news/209198.html

相关文章:

  • 【ONE·Linux || 网络基础(一)】
  • Day12力扣打卡
  • SQL注入原理及思路(mysql)
  • vue核心面试题汇总【查缺补漏】
  • 使用WebStorm创建和配置TypeScript项目
  • vue源码分析(四)——vue 挂载($mount)的详细过程
  • 真机环境配置教程
  • 新电脑第一次重启后蓝屏
  • k8s statefulSet 学习笔记
  • gitlab 通过变量连接自建K8S
  • LuatOS-SOC接口文档(air780E)--mcu - 封装mcu一些特殊操作
  • 第14期 | GPTSecurity周报
  • 【数据结构】优先级队列
  • c语言宏相关高级用法
  • 新款模块上线实现SIP模块与扩拨电话之间打点与喊话功能 IP矿用电话模块SV-2800VP
  • 前端开发---在vue项目中使用openLayers
  • C语言之结构体和共用体详解
  • iOS插件
  • Maven第四章:配置文件详解
  • 计算机网络基础一
  • 搜维尔科技:Touch触觉式力反馈设备与Touch X力反馈设备对比分析
  • SAP保持系统长时间在线
  • 威联通NAS进阶玩法之使用Docker搭建个人博客教程
  • 模型对象CSS2DObject始终在画布的左上角(问题解决)
  • LabVIEW开发基于图像处理的车牌检测系统
  • Data Analysis With Python
  • 【Selenium】提高测试爬虫效率:Selenium与多线程的完美结合
  • ElCLib类解析
  • 栈、队列、矩阵的总结
  • PCL 半径滤波剔除噪点