深圳网站建设认准乐云践新沧县网站制作
- 作者: 五速梦信息网
- 时间: 2026年04月20日 09:20
当前位置: 首页 > news >正文
深圳网站建设认准乐云践新,沧县网站制作,苏州建设工程招标网站,华为手表网站List接口#xff1a; 继承自Collection接口#xff0c;List集合是可重复集合#xff0c;并且有序#xff0c;还提供了一套可以通过下标来操作元素的方法 常见的实现类#xff1a; ArrayList#xff1a;内部使用数组实现#xff0c;查询性能更好(直接下标找到物理地址)、…List接口 继承自Collection接口List集合是可重复集合并且有序还提供了一套可以通过下标来操作元素的方法 常见的实现类 ArrayList内部使用数组实现查询性能更好(直接下标找到物理地址)、增删性能不好 LinkedList内部使用链表实现查询性能不好首尾增删性能好 注意在对集合操作的增删性能没有特别苛刻的要求时通常选择ArrayList
List集常用方法 get()根据下标获取元素 set()将指定元素设置到指定位置并返回被替换的元素(用时才接收) 重载remove()删除指定位置元素并返回被删除的元素(用时才接收) 重载add()将指定元素添加到指定位置理解为插入操作 public class ListDemo {public static void main(String[] args) {ListString list new LinkedList();list.add(one);list.add(two);list.add(three);list.add(four);list.add(five);list.add(one);System.out.println(list:list); //[one, two, three, four, five, one]//E get(int index):获取指定下标所对应的元素String e list.get(2);System.out.println(e); //threefor(int i0;ilist.size();i){System.out.println(list.get(i));}IteratorString it list.iterator();while(it.hasNext()){System.out.println(it.next());}for(String s : list){System.out.println(s);}System.out.println(—————————–);/E set(int index, E e):将给定元素设置到指定位置返回被替换的元素///list.set(2,six); //将list中下标为2的元素设置为six—常规用法String old list.set(2,six); //将list中下标为2的元素设置为six同时将原数据返回oldSystem.out.println(list:list); //[one, two, six, four, five, one]System.out.println(old); //three/E remove(int index):删除指定位置元素并返回指定位置元素///list.remove(2); //删除下标为2的元素—常规用法String s list.remove(2); //删除下标为2的元素并将被删除元素返回给sSystem.out.println(list:list); //[one, two, four, five, one]System.out.println(s); //six/void add(int index,E e):将给定元素e添加到index所指定的位置相当于插入操作/list.add(3,seven); //在list下标为3的位置插入sevenSystem.out.println(list); //[one, two, four, five, one]}
}
subList()获取集合的子集(含头不含尾)
public class SubListDemo {public static void main(String[] args) {/List提供了获取子集的操作:List subList(int start,int end):含头不含尾/ListInteger list new ArrayList();for(int i0;i10;i){list.add(i*10);}System.out.println(list:list); //[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]ListInteger subList list.subList(3,8); //获取下标3到7的子集System.out.println(subList:subList); //[30, 40, 50, 60, 70]//将子集每个元素都扩大10倍for(int i0;isubList.size();i){subList.set(i,subList.get(i)*10);}System.out.println(subList:subList); //[300, 400, 500, 600, 700]//注意:对子集的操作就是对原集合对应的元素操作System.out.println(list:list); //[0, 10, 20, 300, 400, 500, 600, 700, 80, 90]list.set(3,1000); //将原集合下标为3的元素的数据修改为1000System.out.println(list:list); //[0, 10, 20, 1000, 400, 500, 600, 700, 80, 90]//原集合数据改变后子集数据跟着变了System.out.println(subList:subList); //[1000, 400, 500, 600, 700]list.remove(0);System.out.println(list:list); //[10, 20, 1000, 400, 500, 600, 700, 80, 90]//原集合长度修改之后子集将不能再进行任何操作操作则发生异常但是可以重新获取子集System.out.println(subList:subList); //运行时发生不支持修改异常}
}
集合排序 Collections为集合的工具类里面定义了很多静态方法用于操作集合 Collections.sort(List list)方法可以对list集合进行自然排序(从小到大)但是其要求List集合中的元素必须是可比较的判断是否可以比较的标准是元素是否实现了Comparable接口若没有实现该接口则直接发生编译错误但是在实际开发中我们一般是不会不让我们自己写的类去实现Comparable接口的因为这对我们的程序有侵入性。 侵入性当我们调用某个API功能时其要求我们为其修改其它额外的代码这个现象叫做侵入性。侵入性越强越不利于程序的后期维护应尽量避免。 建议使用重载的Collections.sort(List list, Comparator o);可以通过Comparator来自定义比较规则
public class SortInteger {public static void main(String[] args) {Random rand new Random();ListInteger list new ArrayList();for(int i0;i10;i){list.add(rand.nextInt(100));}System.out.println(list原始数据:list); //无序Collections.sort(list); //自然排序(从小到大)System.out.println(list排序后数据:list); //有序(小到大)Collections.reverse(list); //反转list集合(数据已经改变了)System.out.println(list反转后数据:list);System.out.println(第1个元素为:list.get(0)); //输出第1个元素/ListString list new ArrayList();list.add(jack);list.add(rose);list.add(tom);list.add(jerry);list.add(black);list.add(Kobe);System.out.println(list原始数据:list); //[jack, rose, tom, jerry, black, Kobe]//对英文字符串排序时会按首字母的ASCII码来排//若首字母相同则比较第2个字母的ASCII码以此类推Collections.sort(list);System.out.println(list排序后数据:list); //[Kobe, black, jack, jerry, rose, tom]/}
}public class SortPoint {public static void main(String[] args) {ListPoint list new ArrayList();list.add(new Point(5,8));list.add(new Point(15,60));list.add(new Point(57,89));list.add(new Point(1,4));list.add(new Point(10,8));list.add(new Point(22,35));System.out.println(list原始数据:list);//jdk1.8时List集合自身提供了sort方法进行排序方法中需要传入比较器list.sort(new ComparatorPoint() {public int compare(Point o1, Point o2) {return o1.getX()-o2.getX();}});System.out.println(list排序后数据:list);list.sort((o1,o2)-{int len1 o1.getX()*o1.getX()o1.getY()*o1.getY();int len2 o2.getX()*o2.getX()o2.getY()o2.getY();return len1-len2; //升序});///自定义排序规则:Collections.sort(list, new ComparatorPoint() {public int compare(Point o1, Point o2) {int len1 o1.getX()*o1.getX()o1.getY()*o1.getY();int len2 o2.getX()*o2.getX()o2.getY()o2.getY();//return len1-len2; //升序return len2-len1; //降序//return o1.getX()-o2.getX(); //按x坐标升序//return o2.getY()-o1.getY(); //按y坐标降序}});/Collections.sort(list,(o1,o2)-{int len1 o1.getX()*o1.getX()o1.getY()*o1.getY();int len2 o2.getX()*o2.getX()o2.getY()*o2.getY();return len1-len2; //升序});System.out.println(list排序后数据:list);}
}
Lambda表达式 JDK1.8之后推出了一个新特性Lambda表达式 规则 不是任何匿名内部类都可以转换为Lambda表达式 Lambda表达式对接口的要求只能是函数式接口 函数式接口:接口中要求实现类必须重写的方法只有一个
语法
(参数列表)-{方法体
}
public class LambdaDemo {public static void main(String[] args) {ListString list new ArrayList();//匿名内部类写法Collections.sort(list, new ComparatorString() {public int compare(String o1, String o2) {return o1.length()-o2.length();}});//Lambda表达式写法Collections.sort(list, (String o1, String o2) - {return o1.length()-o2.length();});//Lambda表达式中的参数类型可以不写Collections.sort(list, (o1, o2) - {return o1.length()-o2.length();});//Lambda表达式方法体中只有一句代码方法体的{}可以不写如果这句话中有return也一并不写Collections.sort(list, (o1, o2) - o1.length()-o2.length());//Lambda表达式的方法参数只有1个,那么()可以忽略不写—本案例不适用}
}
Set接口
不可重复集合并且大部分实现类都是无序的
public class SetDemo {public static void main(String[] args) {SetString set new HashSet();set.add(one);set.add(two);set.add(three);set.add(four);set.add(five);set.add(two); //无法被正确添加进去因为Set集是不可重复集合并且大部分都无序System.out.println(set);}
}
小面试题如何去重
public class SetDemo {public static void main(String[] args) {//小面试题:如何去重?ListString list new ArrayList();list.add(one);list.add(two);list.add(three);list.add(four);list.add(five);list.add(two);System.out.println(list:list); //[one, two, three, four, five, two]SetString set new HashSet();set.addAll(list); //将list集合元素都添加到set集合中System.out.println(set:set); //[four, one, two, three, five]}
}
什么是二进制逢2进1的计数规则。计算机中的变量/常量都是按照2进制来计算的 2进制 规则逢2进1 数字0 1 基数2 权128 64 32 16 8 4 2 1 如何将2进制转换为10进制 正数将二进制每个1位置的权相加
权: 32 16 8 4 2 1
二进制: 1 0 1 1 0 1
十进制: 3284145权: 32 16 8 4 2 1
二进制: 1 0 0 1 1 0
十进制: 324238
注
十进制 规则逢10进1 数字0 1 2 3 4 5 6 7 8 9 基数10 权十万 万 千 百 十 个
10的0次幂——————1
10的1次幂——————10
10的2次幂——————100
10的3次幂——————1000
10的4次幂——————10000
二进制 规则逢2进1 数字0 1 基数2 权512 256 128 64 32 16 8 4 2 1
2的0次幂——————1
2的1次幂——————2
2的2次幂——————4
2的3次幂——————8
2的4次幂——————16
2的5次幂——————32
十六进制逢16进1 规则逢16进1 数字0 1 2 3 4 5 6 7 8 9 a b c d e f 基数16 权65536 4096 256 16 1
16的0次幂——————1
16的1次幂——————16
16的2次幂——————256
16的3次幂——————4096
16的4次幂——————65536
权的由来基数的几次幂
相关文章
-
深圳网站建设认准乐云践新wordpress缓存稿
深圳网站建设认准乐云践新wordpress缓存稿
- 技术栈
- 2026年04月20日
-
深圳网站建设品牌wordpress添加备案号
深圳网站建设品牌wordpress添加备案号
- 技术栈
- 2026年04月20日
-
深圳网站建设培训学校外贸网站推广建设
深圳网站建设培训学校外贸网站推广建设
- 技术栈
- 2026年04月20日
-
深圳网站建设软件开发公司哪家好电子商务网站建设选择服务器要考虑的因素有
深圳网站建设软件开发公司哪家好电子商务网站建设选择服务器要考虑的因素有
- 技术栈
- 2026年04月20日
-
深圳网站建设软件开发公司哪家好网页制作软件电脑版
深圳网站建设软件开发公司哪家好网页制作软件电脑版
- 技术栈
- 2026年04月20日
-
深圳网站建设设计平台天津建筑工程信息平台
深圳网站建设设计平台天津建筑工程信息平台
- 技术栈
- 2026年04月20日
