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

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

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

HashSet , TreeSet , 無序是指存儲數(shù)據(jù)的順序和取出數(shù)據(jù)的順序不一致;但是TreeSet 是按照指定的順序排個序出來;

如果,我們想按照數(shù)據(jù)輸入的順序依次輸出數(shù)據(jù)(即,如果依次輸入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()); 
 }
 }
 }

運行結(jié)果為:

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

1,排序介紹

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

2,思路分析

可分為三種情況來考慮,第一種頭插法也就是將數(shù)據(jù)插入到數(shù)組的第一個,這種情況插入的數(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代碼實現(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;//通過移動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,運行結(jié)果

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

相關(guān)文章

  • 淺談slf4j中的橋接器是如何運作的

    淺談slf4j中的橋接器是如何運作的

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

    springboot頁面國際化配置指南

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

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

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

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

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

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

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

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

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

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

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

    Java隨機生成姓名,手機號,住址代碼示例

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

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

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

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

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

最新評論