浅谈Java中的集合存储数据后,输出数据的有序和无序问题
#代码知识 发布时间: 2026-01-12
HashSet , TreeSet , 无序是指存储数据的顺序和取出数据的顺序不一致;但是TreeSet 是按照指定的顺序排个序出来;

如果,我们想按照数据输入的顺序依次输出数据(即,如果依次输入4、1、7、3,输出时依次是4、1、7、3),此时需要用LinkedHashMap ,LinkedHashSet
package Demo;
import java.util.*;
import java.util.Map.*;
public class DemoMap {
public static void main(String[] args) {
text3();
System.out.println("==========================================");
text4();
}
public static void text3(){
Map<Integer,String> DemoMap=new HashMap<Integer,String>();
DemoMap.put(4, "dddd");
DemoMap.put(1, "a");
DemoMap.put(3, "ccc");
DemoMap.put(2, "bb");
Iterator<Map.Entry<Integer , String>> it =DemoMap.entrySet().iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
public static void text4(){
Map<Integer,String> DemoMap=new LinkedHashMap<Integer,String>();
DemoMap.put(4, "dddd");
DemoMap.put(1, "a");
DemoMap.put(3, "ccc");
DemoMap.put(2, "bb");
Iterator<Map.Entry<Integer , String>> it =DemoMap.entrySet().iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
运行结果为:
补充知识:java数组实现针对一个有序的数组插入一个数据并保持数组有序
1,排序介绍
针对这个问题,其实可以看做是插入排序中的有序排序。简单的介绍哈,插入排序的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。
2,思路分析
可分为三种情况来考虑,第一种头插法也就是将数据插入到数组的第一个,这种情况插入的数据是最大值或最小值。第二种情况是将数据插入到数组中,插入的数组取值范围在最大值与最小值之间。第三种情况的也就是尾插法,插入的数据是最大值或最小值。
第一种头插法
输入有序数组:arr ={2,3,6,89}
插入的记录(数据):1
输出插入数据的有序数组:arr ={1,2,3,6,89}
第二种插入数组之间
有序数组:arr ={2,3,6,89}
插入的记录(数据):5
返回的有序数组:arr ={2,3,5,6,89}
第二种尾插法
有序数组:arr ={2,3,6,89}
插入的记录(数据):100
返回的有序数组:arr ={2,3,6,89,100}
3,java代码实现
package sort;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* project_name: JavaDemo
* filename: InsertSort
* IDE: IntelliJ IDEA
* author: ganxiang
* CreateDate:2025-07-18 16:04
*/
public class InsertSort {
//头插法
private List insertHead(int [] arr,int data){
int len =arr.length;
int [] a =new int[len+1];
int k=0;
if (data<=arr[0]) a[k]=data;
for (int i = 0; i <=len-1 ; i++) {
k+=1;
a[k]=arr[i];
}
List<Integer> list =new ArrayList<>();
for (int num:a) {
list.add(num);
}
return list;
}
//插入数据到数组之中
private List insertBody(int [] arr,int data){
int len =arr.length;
int [] a =new int[len+1];
int k=0;//通过移动k插入数据
for (int i = 0; i <=len-1 ; i++) {
if(data>=arr[i]&&data<=arr[i+1]){
a[k]=arr[i];
k+=1;
a[k]=data;
i+=1;
k+=1;
}
a[k]=arr[i];
k+=1;
}
// System.out.println(Arrays.toString(a));
List<Integer> list =new ArrayList<>();
for (int num:a) {
list.add(num);
}
return list;
}
//尾插法
private List insertTial(int [] arr,int data) {
int len = arr.length;
int[] a = new int[len + 1];
int k = 0;
for (int i = 0; i <= len - 1; i++) {
a[k] = arr[i];
k += 1;
}
if (data >= arr[len - 1]) a[k] = data;
List<Integer> list = new ArrayList<>();
for (int num : a) {
list.add(num);
}
return list;
}
public static void main(String[] args) {
int [] arr ={2,3,6,89};
System.out.println("输入的有序数组arr为:"+Arrays.toString(arr));
System.out.println("1,头插法插入数据1后的有序数组为:"+new InsertSort().insertHead(arr,1));
System.out.println("2,在数组之中插入数据5后有序的数组为:"+new InsertSort().insertBody(arr,5));
System.out.println("3,尾插法插入数据100后的有序数组为:"+new InsertSort().insertTial(arr,100));
}
}
4,运行结果
以上这篇浅谈Java中的集合存储数据后,输出数据的有序和无序问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
代码知识SEO上一篇 : 基于Java将Excel科学计数法解析成数字
下一篇 : .NET CORE3.1实现微信小程序发送订阅消息
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!