最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無(wú)序問(wèn)題

 更新時(shí)間:2020年09月25日 09:08:55   作者:G_66  
這篇文章主要介紹了淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無(wú)序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

HashSet , TreeSet , 無(wú)序是指存儲(chǔ)數(shù)據(jù)的順序和取出數(shù)據(jù)的順序不一致;但是TreeSet 是按照指定的順序排個(gè)序出來(lái);

如果,我們想按照數(shù)據(jù)輸入的順序依次輸出數(shù)據(jù)(即,如果依次輸入4、1、7、3,輸出時(shí)依次是4、1、7、3),此時(shí)需要用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()); 
 }
 }
 }

運(yùn)行結(jié)果為:

補(bǔ)充知識(shí):java數(shù)組實(shí)現(xiàn)針對(duì)一個(gè)有序的數(shù)組插入一個(gè)數(shù)據(jù)并保持?jǐn)?shù)組有序

1,排序介紹

針對(duì)這個(gè)問(wèn)題,其實(shí)可以看做是插入排序中的有序排序。簡(jiǎn)單的介紹哈,插入排序的基本思想是將一個(gè)記錄插入到已經(jīng)排好序的有序表中,從而一個(gè)新的、記錄數(shù)增1的有序表。

2,思路分析

可分為三種情況來(lái)考慮,第一種頭插法也就是將數(shù)據(jù)插入到數(shù)組的第一個(gè),這種情況插入的數(shù)據(jù)是最大值或最小值。第二種情況是將數(shù)據(jù)插入到數(shù)組中,插入的數(shù)組取值范圍在最大值與最小值之間。第三種情況的也就是尾插法,插入的數(shù)據(jù)是最大值或最小值。

第一種頭插法

輸入有序數(shù)組:arr ={2,3,6,89}

插入的記錄(數(shù)據(jù)):1

輸出插入數(shù)據(jù)的有序數(shù)組:arr ={1,2,3,6,89}

第二種插入數(shù)組之間

有序數(shù)組:arr ={2,3,6,89}

插入的記錄(數(shù)據(jù)):5

返回的有序數(shù)組:arr ={2,3,5,6,89}

第二種尾插法

有序數(shù)組:arr ={2,3,6,89}

插入的記錄(數(shù)據(jù)):100

返回的有序數(shù)組:arr ={2,3,6,89,100}

3,java代碼實(shí)現(xiàn)

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:2020-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;
  }
  //插入數(shù)據(jù)到數(shù)組之中
  private List insertBody(int [] arr,int data){
    int len =arr.length;
    int [] a =new int[len+1];
    int k=0;//通過(guò)移動(dòng)k插入數(shù)據(jù)
    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("輸入的有序數(shù)組arr為:"+Arrays.toString(arr));
    System.out.println("1,頭插法插入數(shù)據(jù)1后的有序數(shù)組為:"+new InsertSort().insertHead(arr,1));
    System.out.println("2,在數(shù)組之中插入數(shù)據(jù)5后有序的數(shù)組為:"+new InsertSort().insertBody(arr,5));
    System.out.println("3,尾插法插入數(shù)據(jù)100后的有序數(shù)組為:"+new InsertSort().insertTial(arr,100));
  }
}

4,運(yùn)行結(jié)果

以上這篇淺談Java中的集合存儲(chǔ)數(shù)據(jù)后,輸出數(shù)據(jù)的有序和無(wú)序問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • break和continue的作用和區(qū)別解析(案例分析)

    break和continue的作用和區(qū)別解析(案例分析)

    break和continue都是用來(lái)控制循環(huán)結(jié)構(gòu)的,主要作用是停止循環(huán),這篇文章主要介紹了break和continue的作用和區(qū)別,需要的朋友可以參考下
    2023-03-03
  • Java實(shí)體類實(shí)現(xiàn)鏈?zhǔn)讲僮鲗?shí)例解析

    Java實(shí)體類實(shí)現(xiàn)鏈?zhǔn)讲僮鲗?shí)例解析

    這篇文章主要介紹了Java實(shí)體類實(shí)現(xiàn)鏈?zhǔn)讲僮鲗?shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java如何實(shí)現(xiàn)遞歸刪除樹(shù)形數(shù)據(jù)的任一個(gè)節(jié)點(diǎn)

    java如何實(shí)現(xiàn)遞歸刪除樹(shù)形數(shù)據(jù)的任一個(gè)節(jié)點(diǎn)

    文章講述了在Java中實(shí)現(xiàn)遞歸刪除樹(shù)形數(shù)據(jù)的任一個(gè)節(jié)點(diǎn)時(shí)需要注意的三個(gè)點(diǎn),包括刪除的節(jié)點(diǎn)包含子節(jié)點(diǎn)、刪除子節(jié)點(diǎn)和其他子節(jié)點(diǎn)刪除的節(jié)點(diǎn)不包含子節(jié)點(diǎn)、以及該父節(jié)點(diǎn)變成葉子節(jié)點(diǎn),此外,文章還提到這兩件事包含在同一件事務(wù)中
    2024-12-12
  • Java?Web開(kāi)發(fā)環(huán)境配置詳解

    Java?Web開(kāi)發(fā)環(huán)境配置詳解

    這篇文章主要介紹了Java?Web開(kāi)發(fā)環(huán)境配置詳解,對(duì)初學(xué)者是個(gè)必備的過(guò)程,有需要的可以了解一下
    2016-11-11
  • jdk中密鑰和證書(shū)管理工具keytool常用命令詳解

    jdk中密鑰和證書(shū)管理工具keytool常用命令詳解

    keytool JAVA是個(gè)密鑰和證書(shū)管理工具。它使用戶能夠管理自己的公鑰/私鑰對(duì)及相關(guān)證書(shū),用于(通過(guò)數(shù)字簽名)自我認(rèn)證(用戶向別的用戶/服務(wù)認(rèn)證自己)或數(shù)據(jù)完整性以及認(rèn)證服務(wù)
    2014-01-01
  • Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解

    Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解

    JDK 的動(dòng)態(tài)代理是基于攔截器和反射來(lái)實(shí)現(xiàn)的,JDK代理是不需要第三方庫(kù)支持的,只需要JDK環(huán)境就可以進(jìn)行代理,下面這篇文章主要給大家介紹了關(guān)于Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • java GUI編程之paint繪制操作示例

    java GUI編程之paint繪制操作示例

    這篇文章主要介紹了java GUI編程之paint繪制操作,結(jié)合實(shí)例形式詳細(xì)分析了java GUI編程paint繪制相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • 詳解Java 打印堆棧的幾種方法

    詳解Java 打印堆棧的幾種方法

    本篇文章主要介紹了Java 打印堆棧的幾種方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • springboot?集成easy-captcha實(shí)現(xiàn)圖像驗(yàn)證碼顯示和登錄

    springboot?集成easy-captcha實(shí)現(xiàn)圖像驗(yàn)證碼顯示和登錄

    本文主要介紹了springboot?集成easy-captcha實(shí)現(xiàn)圖像驗(yàn)證碼顯示和登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 簡(jiǎn)述Java中的四種引用類型

    簡(jiǎn)述Java中的四種引用類型

    從JDK1.2版本開(kāi)始,把對(duì)象的引用分為四種級(jí)別,從而使程序能更加靈活的控制對(duì)象的生命周期。這四種級(jí)別由高到低依次為:強(qiáng)引用、軟引用、弱引用和虛引用,下面分別介紹下這四種引用。
    2021-04-04

最新評(píng)論

额尔古纳市| 湘乡市| 鲁甸县| 峡江县| 卢湾区| 天台县| 曲麻莱县| 天台县| 锡林浩特市| 通化市| 盐源县| 新昌县| 安龙县| 体育| 黄大仙区| 新宁县| 内江市| 方正县| 和田市| 宜章县| 大关县| 易门县| 阿拉尔市| 芮城县| 体育| 蒙山县| 揭阳市| 商洛市| 高要市| 确山县| 大厂| 呼图壁县| 铜山县| 育儿| 阳朔县| 邹城市| 祁东县| 读书| 六盘水市| 宝清县| 吉水县|