建站之星服务器网站信息平台建设方案
news/
2025/10/1 8:28:42/
文章来源:
建站之星服务器,网站信息平台建设方案,橘子建站,常州找工作哪个网站好了解int和Integer的区别 int是Java的基本数据类型#xff0c;用于表示整数值。Integer是int的包装类#xff0c;它是一个对象#xff0c;可以包含一个int值并提供一些额外的功能。 Java集合框架中的集合类#xff08;如List、Set、Map#xff09;只能存储对象#xff0c;…了解int和Integer的区别 int是Java的基本数据类型用于表示整数值。Integer是int的包装类它是一个对象可以包含一个int值并提供一些额外的功能。 Java集合框架中的集合类如List、Set、Map只能存储对象不能存储基本类型。因此如果要在集合中存储int值需要使用Integer对象。 举个例子若想比较list某两个元素值是否相等不能用它是比较基本类型的要用equals ListInteger list new ArrayList();
list.add(1);
list.add(2);
// 若想比较list某两个元素值是否相等不能用它是比较基本类型的要用equals
list.get(0) list.get(1) // ×
list.get(0).equals(list.get(1)) // √int与Integer的相互转换 Integer.valueOf(int) 和 int.intValue() //简单转换
// int --- Integer Integer.valueOf(int)
int[] intArray {1, 2, 3, 4, 5};
Integer[] integerArray new Integer[intArray.length];
for (int i 0; i intArray.length; i) {integerArray[i] Integer.valueOf(intArray[i]);
}// Integer --- int int.intValue()
Integer[] integerArray {1, 2, 3, 4, 5};
int[] intArray new int[integerArray.length];
for (int i 0; i integerArray.length; i) {intArray[i] integerArray[i].intValue();
}对普通数据排序
使用Array升序 对于基本类型int、long等的排序Arrays.sort()只能实现升序。默认升序 int[] arr{5,1,3,5,4};
Arrays.sort(arr); // 升序 使用Array降序 要实现降序则arr必须是对象类型 Integer等 可以采用多种降序方法Comparator、lambda、Collections等 Integer[] arr { 5, 4, 7, 9, 2, 12, 54, 21, 1 };
Arrays.sort(arr, new ComparatorInteger() { // Comparator降序public int compare(Integer o1, Integer o2) {return o2-o1;}
});
Arrays.sort(arr, (x, y) - y - x); // lambda降序
Arrays.sort(arr, Collections.reverseOrder()); // Collections降序使用List升序 跟Array类似不过是采用Collections的sort进行升序。默认升序 ListInteger list new ArrayList();
list.add(1);
list.add(3);
Collections.sort(list); // 升序使用List降序 也是可以采用Comparator和lambda进行降序。 Collections.sort(list, new ComparatorInteger() { // Comparator降序public int compare(Integer o1, Integer o2) { return o2-o1; }
});
Collections.sort(list, (x, y) - y - x); // lambda降序对结构类型变量排序 在定义结构体类时继承Comparable即可可自行定义各个属性的排序优先级和升降序关系。 public static class Node implements ComparableNode {int x, y;public Node(int x, int y) { // 构造函数this.x x;this.y y;}public int compareTo(Node o) {if (this.x o.x) {return this.y - o.y; // 其次按y升序排序} else {return this.x - o.x; // 优先按x升序排序// o.x - this.x 降序}}
}使用Array排序 若是用array类型存储的结构体直接使用Arrays.sort()但是与排序普通数据不同需要添加排序范围不然会报错形如Arrays.sort (arr, 0 , arr.length); int len 3;
Node[] nodes2 new Node[len];
nodes2[0] new Node(1, 3);
nodes2[1] new Node(2, 2);
nodes2[2] new Node(3, 2);
Arrays.sort(nodes2, 0, len);
for (Node n : nodes2) {System.out.println(n.x n.y);
}使用list排序
ListNode nodes new ArrayList();
nodes.add(new Node(1,3));
nodes.add(new Node(2,2));
Collections.sort(nodes);
for (Node n : nodes) {System.out.println(n.x n.y);
}总结 排序方法很多在写算法时记住常用的简易的方法即可。 推荐 对于普通数据arr{1,5,6,4,3}; list[1,5,6,4,3] - 用Array升序Arrays.sort(arr) 降序Arrays.sort(arr, (x,y) - y-x); - 用List升序Collections.sort(list) , 降序Collections.sort(list, (x, y) - y-x);对于结构体数据 - 定义结构体类的同时定义Comparable接口 - 用Array: 升降序Arrays.sort (nodes, 0 , nodes.length) - 用List升降序Collections.sort(nodes)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923662.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!