欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談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)文章

  • 淺談slf4j中的橋接器是如何運(yùn)作的

    淺談slf4j中的橋接器是如何運(yùn)作的

    這篇文章主要介紹了slf4j中的橋接器是如何運(yùn)作的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • springboot頁(yè)面國(guó)際化配置指南

    springboot頁(yè)面國(guó)際化配置指南

    聽(tīng)起來(lái)高大上的國(guó)際化,起始就是在利用瀏覽器語(yǔ)言,或者頁(yè)面中的中英文切換,將頁(yè)面的文字在其他語(yǔ)言和中文進(jìn)行切換,這篇文章主要給大家介紹了關(guān)于springboot頁(yè)面國(guó)際化配置的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • openGauss數(shù)據(jù)庫(kù)JDBC環(huán)境連接配置的詳細(xì)過(guò)程(Eclipse)

    openGauss數(shù)據(jù)庫(kù)JDBC環(huán)境連接配置的詳細(xì)過(guò)程(Eclipse)

    這篇文章主要介紹了openGauss數(shù)據(jù)庫(kù)JDBC環(huán)境連接配置(Eclipse),演示基于JDBC開(kāi)發(fā)的主要步驟,會(huì)涉及創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建表、插入數(shù)據(jù)等,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Spring security基于數(shù)據(jù)庫(kù)中賬戶(hù)密碼認(rèn)證

    Spring security基于數(shù)據(jù)庫(kù)中賬戶(hù)密碼認(rèn)證

    這篇文章主要介紹了Spring security基于數(shù)據(jù)庫(kù)中賬戶(hù)密碼認(rèn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot進(jìn)行Web開(kāi)發(fā)的實(shí)現(xiàn)

    SpringBoot進(jìn)行Web開(kāi)發(fā)的實(shí)現(xiàn)

    Spring?Boot讓我們可以快速構(gòu)建項(xiàng)目并運(yùn)行web應(yīng)用,大大簡(jiǎn)化了Spring的復(fù)雜配置,本文主要介紹了SpringBoot進(jìn)行Web開(kāi)發(fā)的實(shí)現(xiàn),感興趣的可以了解一下
    2023-10-10
  • 在SpringBoot中配置日志級(jí)別和輸出格式的教程詳解

    在SpringBoot中配置日志級(jí)別和輸出格式的教程詳解

    在開(kāi)發(fā)一個(gè)應(yīng)用程序時(shí),日志記錄是非常重要的一環(huán),SpringBoot提供了多種日志輸出方式和配置選項(xiàng),本文將介紹如何在SpringBoot應(yīng)用程序中配置日志級(jí)別和輸出格式,需要的朋友可以參考下
    2023-06-06
  • 如何使用Java模擬退火算法優(yōu)化Hash函數(shù)

    如何使用Java模擬退火算法優(yōu)化Hash函數(shù)

    為了解決局部最優(yōu)解問(wèn)題,1983年,Kirkpatrick等提出了模擬退火算法(SA)能有效的解決局部最優(yōu)解問(wèn)題。模擬退火算法包含兩個(gè)部分即Metropolis算法和退火過(guò)程。Metropolis算法就是如何在局部最優(yōu)解的情況下讓其跳出來(lái),是退火的基礎(chǔ)
    2021-06-06
  • Java隨機(jī)生成姓名,手機(jī)號(hào),住址代碼示例

    Java隨機(jī)生成姓名,手機(jī)號(hào),住址代碼示例

    這篇文章主要介紹了Java隨機(jī)生成姓名,手機(jī)號(hào),住址代碼示例,屬于Java基礎(chǔ)方面的內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java 實(shí)戰(zhàn)范例之進(jìn)銷(xiāo)存管理系統(tǒng)的實(shí)現(xiàn)

    Java 實(shí)戰(zhàn)范例之進(jìn)銷(xiāo)存管理系統(tǒng)的實(shí)現(xiàn)

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+Springboot+ssm+mysql+maven+redis實(shí)現(xiàn)一個(gè)前后端分離的進(jìn)銷(xiāo)存管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Java字符串相關(guān)類(lèi)StringBuffer的用法詳解

    Java字符串相關(guān)類(lèi)StringBuffer的用法詳解

    java.lang包下的StringBuffer類(lèi),代表著可變的字符序列,可以用來(lái)對(duì)字符串內(nèi)容進(jìn)行增刪改操作。本文將通過(guò)示例詳細(xì)說(shuō)說(shuō)它的用法,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-10-10

最新評(píng)論