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

java實(shí)現(xiàn)自定義日期選擇器的方法實(shí)例

 更新時間:2017年10月16日 11:26:29   作者:蔣固金  
日期選擇器是我們?nèi)粘i_發(fā)中經(jīng)常需要用到的一個功能,下面這篇文章主要給大家介紹了關(guān)于利用java實(shí)現(xiàn)自定義日期選擇器的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

本文主要介紹的是利用java swing寫的一個日期選擇器.,Swing 是一個為Java設(shè)計的GUI工具包,Swing是JAVA基礎(chǔ)類的一部分,Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表,下面話不多說了,來一起看看詳細(xì)的介紹吧。

先上效果圖

代碼如下:

package com.jianggujin;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;

/**
 * 日期選擇器控件
 * 
 * @author jianggujin
 * 
 */
@SuppressWarnings("serial")
public final class JDateChooser extends JDialog
{

 // 定義相關(guān)參數(shù)
 /**
 * 年份
 */
 private int year = 0;
 /**
 * 月份
 */
 private int month = 0;
 /**
 * 天
 */
 private int date = 0;

 /**
 * 日期選擇背景色
 */
 private Color selectColor = Color.green;
 /**
 * 日期背景色
 */
 private Color dateColor = Color.white;
 /**
 * 日期鼠標(biāo)進(jìn)入背景色
 */
 private Color dateHoverColor = Color.lightGray;
 /**
 * 日期標(biāo)題背景色
 */
 private Color dateTitleColor = Color.gray;
 /**
 * 日期標(biāo)題字體顏色
 */
 private Color dateTitleFontColor = Color.black;
 /**
 * 日期字體顏色
 */
 private Color dateFontColor = Color.black;

 /**
 * 日期是否有效標(biāo)志
 */
 private boolean flag = false;

 /**
 * 最小年份
 */
 private int minYear = 1900;
 /**
 * 最大年份
 */
 private int maxYear = 2050;

 // 定義所需組件
 /**
 * 上一年
 */
 private JButton jbYearPre;
 /**
 * 下一年
 */
 private JButton jbYearNext;
 /**
 * 上一月
 */
 private JButton jbMonthPre;
 /**
 * 下一月
 */
 private JButton jbMonthNext;
 /**
 * 年份下拉選擇框
 */
 private JComboBox<String> jcbYear;
 /**
 * 月份下拉選擇框
 */
 private JComboBox<String> jcbMonth;
 /**
 * 天標(biāo)簽
 */
 private JLabel[][] jlDays;
 /**
 * 選擇
 */
 private JButton jbChoose;
 /**
 * 今日
 */
 private JButton jbToday;
 /**
 * 取消
 */
 private JButton jbCancel;

 /**
 * 程序主方法
 * 
 * @param args
 *   命令參數(shù)
 */
 public static void main(String[] args)
 {
  try
  {
   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  }
  catch (Exception e)
  {
  }
  JDateChooser gg = new JDateChooser();
  gg.showDateChooser();
  System.out.println(gg.getDateFormat("yyyy-MM-dd"));
 }

 /**
 * 顯示對話框
 */
 public void showDateChooser()
 {
  setVisible(true);
 }

 /**
 * 關(guān)閉對話框
 */
 public void closeDateChooser()
 {
  this.dispose();
 }

 /**
 * 設(shè)置時間
 * 
 * @param year
 *   年份 1900-2050
 * @param month
 *   月份 1-12
 * @param date
 *   天
 */
 public void setDate(int year, int month, int date)
 {
  if (year >= minYear && year <= maxYear)
  {
   this.year = year;
  }
  else
  {
   return;
  }
  if (month >= 1 && month <= 12)
  {
   this.month = month;
  }
  else
  {
   return;
  }
  if (date > 0 && date <= getDaysInMonth(year, month))
  {
   this.date = date;
  }
  else
  {
   return;
  }
 }

 /**
 * 獲得用戶操作是否有效標(biāo)志
 * 
 * @return 事件是否有效
 */
 public boolean getFlag()
 {
  return flag;
 }

 /**
 * 構(gòu)造方法
 */
 public JDateChooser()
 {
  initComponent();
  initComponentData();
  addComponent();
  addListener();
  setDialogAttribute();
 }

 /**
 * 實(shí)例化組件
 */
 private void initComponent()
 {
  jbYearPre = new JButton();
  jbYearNext = new JButton();
  jbMonthPre = new JButton();
  jbMonthNext = new JButton();
  jcbYear = new JComboBox<String>();
  jcbMonth = new JComboBox<String>();

  jlDays = new JLabel[7][7];

  jbChoose = new JButton();
  jbToday = new JButton();
  jbCancel = new JButton();
 }

 /**
 * 初始化組件數(shù)據(jù)
 */
 private void initComponentData()
 {
  jbYearPre.setText("←");
  jbYearNext.setText("→");
  jbMonthPre.setText("↑");
  jbMonthNext.setText("↓");
  Calendar calendar = Calendar.getInstance();
  if (year != 0 && month != 0 && date != 0)
  {
   calendar.set(year, month - 1, date);
  }
  else
  {
   year = calendar.get(Calendar.YEAR);
   month = calendar.get(Calendar.MONTH) + 1;
   date = calendar.get(Calendar.DAY_OF_MONTH);
  }
  initYear();
  jcbYear.setSelectedItem(year + "年");
  for (int i = 1; i <= 12; i++)
  {
   jcbMonth.addItem(i + "月");
  }
  jcbMonth.setSelectedItem(month + "月");
  for (int i = 0; i < 7; i++)
  {
   JLabel temp = new JLabel();
   temp.setHorizontalAlignment(JLabel.CENTER);
   temp.setVerticalAlignment(JLabel.CENTER);
   temp.setOpaque(true);
   temp.setBackground(dateTitleColor);
   temp.setForeground(dateTitleFontColor);
   jlDays[0][i] = temp;
  }
  for (int i = 1; i < 7; i++)
  {
   for (int j = 0; j < 7; j++)
   {
   JLabel temp = new JLabel();
   temp.setHorizontalAlignment(JLabel.CENTER);
   temp.setVerticalAlignment(JLabel.CENTER);
   temp.setOpaque(true);
   temp.setForeground(dateFontColor);
   jlDays[i][j] = temp;
   }
  }

  String[] days = { "日", "一", "二", "三", "四", "五", "六" };
  for (int i = 0; i < 7; i++)
  {
   jlDays[0][i].setText(days[i]);
  }

  jbChoose.setText("選擇");
  jbToday.setText("今日");
  jbCancel.setText("取消");

  changeDate();
 }

 /**
 * 初始化顯示年份范圍
 */
 private void initYear()
 {
  jcbYear.removeAllItems();
  for (int i = minYear; i <= maxYear; i++)
  {
   jcbYear.addItem(i + "年");
  }
 }

 /**
 * 添加組件
 */
 private void addComponent()
 {
  // 添加背部組件
  JPanel north = new JPanel();
  north.add(jbYearPre);
  north.add(jbMonthPre);
  north.add(jcbYear);
  north.add(jcbMonth);
  north.add(jbMonthNext);
  north.add(jbYearNext);
  this.add(north, "North");

  // 添加中間組件
  JPanel center = new JPanel(new GridLayout(7, 7));
  for (int i = 0; i < 7; i++)
  {
   for (int j = 0; j < 7; j++)
   {
   center.add(jlDays[i][j]);
   }
  }
  this.add(center);

  // 添加南部組件
  JPanel jpSouth = new JPanel();
  jpSouth.add(jbChoose);
  jpSouth.add(jbToday);
  jpSouth.add(jbCancel);
  this.add(jpSouth, "South");
 }

 /**
 * 獲得指定年指定月份的天數(shù)
 * 
 * @param year
 *   年份
 * @param month
 *   月份
 * @return 天數(shù)
 */
 private int getDaysInMonth(int year, int month)
 {
  switch (month)
  {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
   return 31;
  case 4:
  case 6:
  case 9:
  case 11:
   return 30;
  case 2:
   if (isLeapYear(year))
   {
   return 29;
   }
   return 28;
  default:
   return 0;
  }
 }

 /**
 * 清空日期
 */
 private void clearDate()
 {
  for (int i = 1; i < 7; i++)
  {
   for (int j = 0; j < 7; j++)
   {
   jlDays[i][j].setText("");
   }
  }
 }

 /**
 * 更改日期
 * 
 */
 private void changeDate()
 {
  refreshLabelColor();
  clearDate();
  Calendar calendar = Calendar.getInstance();
  calendar.set(year, month - 1, 1);
  int day_in_week = calendar.get(Calendar.DAY_OF_WEEK);
  int days = getDaysInMonth(year, month);
  if (date > days)
  {
   date = 1;
  }
  int temp = 0;
  for (int i = day_in_week - 1; i < 7; i++)
  {
   temp++;
   jlDays[1][i].setText(temp + "");
   if (temp == date)
   {
   jlDays[1][i].setBackground(selectColor);
   }
  }
  for (int i = 2; i < 7; i++)
  {
   for (int j = 0; j < 7; j++)
   {
   temp++;
   if (temp > days)
   {
    return;
   }
   jlDays[i][j].setText(temp + "");
   if (temp == date)
   {
    jlDays[i][j].setBackground(selectColor);
   }
   }
  }
 }

 /**
 * 添加監(jiān)聽
 */
 private void addListener()
 {
  LabelMouseListener labelMouseListener = new LabelMouseListener();
  for (int i = 1; i < 7; i++)
  {
   for (int j = 0; j < 7; j++)
   {
   jlDays[i][j].addMouseListener(labelMouseListener);
   }
  }
  ButtonActionListener buttonActionListener = new ButtonActionListener();
  jbYearPre.addActionListener(buttonActionListener);
  jbYearNext.addActionListener(buttonActionListener);
  jbMonthPre.addActionListener(buttonActionListener);
  jbMonthNext.addActionListener(buttonActionListener);
  jbChoose.addActionListener(buttonActionListener);
  jbToday.addActionListener(buttonActionListener);
  jbCancel.addActionListener(buttonActionListener);

  ComboBoxItemListener comboBoxItemListener = new ComboBoxItemListener();
  jcbYear.addItemListener(comboBoxItemListener);
  jcbMonth.addItemListener(comboBoxItemListener);
 }

 /**
 * 解析年份或月份
 * 
 * @param yearOrMonth
 *   年份或月份字符串
 * @return 年份或月份
 */
 private int parseYearOrMonth(String yearOrMonth)
 {
  return Integer.parseInt(yearOrMonth.substring(0, yearOrMonth.length() - 1));
 }

 /**
 * 判斷是否為閏年
 * 
 * @param year
 *   年份
 * @return true 閏年<br/>
 *   false 平年
 */
 private boolean isLeapYear(int year)
 {
  return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
 }

 /**
 * 設(shè)置對話框?qū)傩?
 */
 private void setDialogAttribute()
 {
  this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  this.setSize(400, 300);
  this.setLocationRelativeTo(null);
  // 顯示為模態(tài)對話框
  this.setModal(true);
  this.setTitle("日期選擇器");
  this.setIconImage((new ImageIcon(this.getClass().getResource("/calendar.png"))).getImage());
 }

 /**
 * 刷新日期標(biāo)簽背景顏色
 */
 private void refreshLabelColor()
 {
  for (int i = 1; i < 7; i++)
  {
   for (int j = 0; j < 7; j++)
   {
   jlDays[i][j].setBackground(dateColor);
   }
  }
 }

 /**
 * 獲得顯示最小年份
 * 
 * @return 顯示最小年份
 */
 public int getMinYear()
 {
  return minYear;
 }

 /**
 * 獲得顯示最大年份
 * 
 * @return 顯示最大年份
 */
 public int getMaxYear()
 {
  return maxYear;
 }

 /**
 * 設(shè)置顯示最小年份和最大年份(1900-9999)
 * 
 * @param minYear
 *   最小年份
 * @param maxYear
 *   最大年份
 */
 public void setMinAndMaxYear(int minYear, int maxYear)
 {
  if (minYear > maxYear || minYear < 1900 || maxYear > 9999)
  {
   return;
  }
  this.minYear = minYear;
  this.maxYear = maxYear;
  initYear();
 }

 /**
 * 獲得選中背景顏色
 * 
 * @return 選中背景顏色
 */
 public Color getSelectColor()
 {
  return selectColor;
 }

 /**
 * 設(shè)置選中背景顏色
 * 
 * @param selectColor
 *   選中背景顏色
 */
 public void setSelectColor(Color selectColor)
 {
  this.selectColor = selectColor;
 }

 /**
 * 獲得日期背景顏色
 * 
 * @return 日期背景顏色
 */
 public Color getDateColor()
 {
  return dateColor;
 }

 /**
 * 設(shè)置日期背景顏色
 * 
 * @param dateColor
 *   日期背景顏色
 */
 public void setDateColor(Color dateColor)
 {
  this.dateColor = dateColor;
 }

 /**
 * 獲得日期鼠標(biāo)進(jìn)入背景顏色
 * 
 * @return 日期鼠標(biāo)進(jìn)入背景顏色
 */
 public Color getDetaHoverColor()
 {
  return dateHoverColor;
 }

 /**
 * 設(shè)置日期鼠標(biāo)進(jìn)入背景顏色
 * 
 * @param dateHoverColor
 *   日期鼠標(biāo)進(jìn)入背景顏色
 */
 public void setDateHoverColor(Color dateHoverColor)
 {
  this.dateHoverColor = dateHoverColor;
 }

 /**
 * 獲得日期標(biāo)題背景顏色
 * 
 * @return 日期標(biāo)題背景顏色
 */
 public Color getDateTitleColor()
 {
  return dateTitleColor;
 }

 /**
 * 設(shè)置日期標(biāo)題背景顏色
 * 
 * @param dateTitleColor
 *   日期標(biāo)題背景顏色
 */
 public void setDateTitleColor(Color dateTitleColor)
 {
  this.dateTitleColor = dateTitleColor;
 }

 /**
 * 獲得日期標(biāo)題字體顏色
 * 
 * @return 日期標(biāo)題字體顏色
 */
 public Color getDateTitleFontColor()
 {
  return dateTitleFontColor;
 }

 /**
 * 設(shè)置日期標(biāo)題字體顏色
 * 
 * @param dateTitleFontColor
 *   日期標(biāo)題字體顏色
 */
 public void setDateTitleFontColor(Color dateTitleFontColor)
 {
  this.dateTitleFontColor = dateTitleFontColor;
 }

 /**
 * 獲得日期字體顏色
 * 
 * @return 日期字體顏色
 */
 public Color getDateFontColor()
 {
  return dateFontColor;
 }

 /**
 * 設(shè)置日期字體顏色
 * 
 * @param dateFontColor
 *   日期字體顏色
 */
 public void setDateFontColor(Color dateFontColor)
 {
  this.dateFontColor = dateFontColor;
 }

 /**
 * 獲得選擇年份
 * 
 * @return 選擇年份
 */
 public int getYear()
 {
  return year;
 }

 /**
 * 獲得選中月份
 * 
 * @return 選中月份
 */
 public int getMonth()
 {
  return month;
 }

 /**
 * 獲得選中天為當(dāng)月第幾天
 * 
 * @return 選中天為當(dāng)月第幾天
 */
 public int getDate()
 {
  return date;
 }

 /**
 * 獲得選中天為一周中第幾天
 * 
 * @return 選中天為一周中第幾天
 */
 public int getDayOfWeek()
 {
  return getCalendar().get(Calendar.DAY_OF_WEEK);
 }

 /**
 * 獲得選中天為一年中第幾天
 * 
 * @return 選中天為一年中第幾天
 */
 public int getDayOfYear()
 {
  return getCalendar().get(Calendar.DAY_OF_YEAR);
 }

 /**
 * 獲得日期對象
 * 
 * @return 日期對象
 */
 public Date getDateObject()
 {
  return getCalendar().getTime();
 }

 /**
 * 獲得以指定規(guī)則格式化的日期字符串
 * 
 * @param format
 *   格式化規(guī)則
 * @return 日期字符串
 */
 public String getDateFormat(String format)
 {
  return new SimpleDateFormat(format).format(getDateObject());
 }

 /**
 * 獲得Calendar對象
 * 
 * @return Calendar對象
 */
 private Calendar getCalendar()
 {
  Calendar calendar = Calendar.getInstance();
  calendar.set(year, month - 1, date);
  return calendar;
 }

 /**
 * 標(biāo)簽鼠標(biāo)監(jiān)聽
 * 
 * @author jianggujin
 * 
 */
 final class LabelMouseListener extends MouseAdapter
 {

  @Override
  public void mouseClicked(MouseEvent e)
  {
   JLabel temp = (JLabel) e.getSource();
   if (!temp.getText().equals(""))
   {
   int date = Integer.parseInt(temp.getText());
   {
    if (date != JDateChooser.this.date)
    {
     JDateChooser.this.date = date;
     refreshLabelColor();
     temp.setBackground(selectColor);
    }
   }
   }
  }

  @Override
  public void mouseEntered(MouseEvent e)
  {
   JLabel temp = (JLabel) e.getSource();
   if (!temp.getText().equals(""))
   {
   temp.setBackground(dateHoverColor);
   }
  }

  @Override
  public void mouseExited(MouseEvent e)
  {
   JLabel temp = (JLabel) e.getSource();
   if (!temp.getText().equals(""))
   {
   if (Integer.parseInt(temp.getText()) != date)
   {
    temp.setBackground(dateColor);
   }
   else
   {
    temp.setBackground(selectColor);
   }
   }
  }

 }

 /**
 * 按鈕動作監(jiān)聽
 * 
 * @author jianggujin
 * 
 */
 final class ButtonActionListener implements ActionListener
 {

  public void actionPerformed(ActionEvent e)
  {
   if (e.getSource() == jbYearPre)
   {
   int select = jcbYear.getSelectedIndex();
   if (select > 0)
   {
    jcbYear.setSelectedIndex(select - 1);
   }
   }
   else if (e.getSource() == jbYearNext)
   {
   int select = jcbYear.getSelectedIndex();
   if (select < jcbYear.getItemCount() - 1)
   {
    jcbYear.setSelectedIndex(select + 1);
   }
   }
   else if (e.getSource() == jbMonthPre)
   {
   int select = jcbMonth.getSelectedIndex();
   if (select > 0)
   {
    jcbMonth.setSelectedIndex(select - 1);
   }
   }
   else if (e.getSource() == jbMonthNext)
   {
   int select = jcbMonth.getSelectedIndex();
   if (select < jcbMonth.getItemCount() - 1)
   {
    jcbMonth.setSelectedIndex(select + 1);
   }
   }
   else if (e.getSource() == jbChoose)
   {
   flag = true;
   closeDateChooser();
   }
   else if (e.getSource() == jbToday)
   {
   flag = true;
   Calendar calendar = Calendar.getInstance();
   year = calendar.get(Calendar.YEAR);
   month = calendar.get(Calendar.MONTH) + 1;
   date = calendar.get(Calendar.DATE);
   closeDateChooser();
   }
   else if (e.getSource() == jbCancel)
   {
   flag = false;
   closeDateChooser();
   }
  }
 }

 /**
 * 下拉選擇框項(xiàng)改變監(jiān)聽
 * 
 * @author jianggujin
 * 
 */
 final class ComboBoxItemListener implements ItemListener
 {

  public void itemStateChanged(ItemEvent e)
  {
   if (e.getSource() == jcbYear)
   {
   int year = parseYearOrMonth(jcbYear.getSelectedItem().toString());
   if (year != JDateChooser.this.year)
   {
    JDateChooser.this.year = year;
    changeDate();
   }
   }
   else if (e.getSource() == jcbMonth)
   {
   int month = parseYearOrMonth(jcbMonth.getSelectedItem().toString());
   if (month != JDateChooser.this.month)
   {
    JDateChooser.this.month = month;
    changeDate();
   }
   }
  }
 }
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • CORS跨域問題常用解決方法代碼實(shí)例

    CORS跨域問題常用解決方法代碼實(shí)例

    這篇文章主要介紹了CORS跨域問題常用解決方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • CentOS安裝solr 4.10.3詳細(xì)教程

    CentOS安裝solr 4.10.3詳細(xì)教程

    這篇文章主要為大家詳細(xì)介紹了CentOS安裝solr 4.10.3的詳細(xì)教程 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Java詳細(xì)分析講解自動裝箱自動拆箱與Integer緩存的使用

    Java詳細(xì)分析講解自動裝箱自動拆箱與Integer緩存的使用

    裝箱就是把基本類型轉(zhuǎn)換成包裝類,拆箱就是把包裝類轉(zhuǎn)換成基本類型,下面這篇文章主要給大家介紹Java中自動裝箱、自動拆箱與Integer緩存,需要的朋友可以參考下
    2022-04-04
  • 簡單談?wù)凾hreadPoolExecutor線程池之submit方法

    簡單談?wù)凾hreadPoolExecutor線程池之submit方法

    下面小編就為大家?guī)硪黄唵握務(wù)凾hreadPoolExecutor線程池之submit方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 詳解Java8的groupBy實(shí)現(xiàn)集合的分組

    詳解Java8的groupBy實(shí)現(xiàn)集合的分組

    這篇文章主要介紹了詳解Java8的groupBy實(shí)現(xiàn)集合的分組,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 在SpringBoot中使用HATEOAS的方法

    在SpringBoot中使用HATEOAS的方法

    這篇文章主要介紹了在SpringBoot中使用HATEOAS的方法,HATEOAS是實(shí)現(xiàn)REST規(guī)范的一種原則,通過遵循HATEOAS規(guī)范,可以解決我們實(shí)際代碼實(shí)現(xiàn)的各種個問題,下文更多相關(guān)介紹,需要的小伙伴可以參考一下
    2022-05-05
  • SpringCloud?客戶端Ribbon負(fù)載均衡的實(shí)現(xiàn)方法

    SpringCloud?客戶端Ribbon負(fù)載均衡的實(shí)現(xiàn)方法

    Ribbon 是 Netflix 提供的一個基于 Http 和 TCP 的客戶端負(fù)載均衡工具,且已集成在 Eureka 依賴中,這篇文章主要介紹了SpringCloud?客戶端Ribbon負(fù)載均衡的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2022-06-06
  • 詳解SpringMVC攔截器配置及使用方法

    詳解SpringMVC攔截器配置及使用方法

    本篇文章主要介紹了SpringMVC攔截器配置及使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java集合中的LinkedHashSet源碼解讀

    Java集合中的LinkedHashSet源碼解讀

    這篇文章主要介紹了Java集合中的LinkedHashSet源碼解讀,在LinkedHashMap中,雙向鏈表的遍歷順序通過構(gòu)造方法指定,如果沒有指定,則使用默認(rèn)順序?yàn)椴迦腠樞?即accessOrder=false,需要的朋友可以參考下
    2023-12-12
  • java實(shí)現(xiàn)多層級zip解壓的示例代碼

    java實(shí)現(xiàn)多層級zip解壓的示例代碼

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多層級zip解壓的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2024-12-12

最新評論

浙江省| 眉山市| 韶山市| 乡城县| 黎川县| 长治市| 阿巴嘎旗| 黔西县| 棋牌| 朝阳县| 北碚区| 房产| 阳泉市| 呼和浩特市| 班戈县| 连平县| 红河县| 永清县| 加查县| 昭觉县| 揭东县| 平阴县| 宁城县| 玉田县| 阿鲁科尔沁旗| 汶上县| 新巴尔虎左旗| 建湖县| 运城市| 车险| 天水市| 岫岩| 耿马| 三穗县| 浦北县| 涞源县| 南澳县| 永康市| 灵石县| 吉首市| 永寿县|