प्रौद्योगिकी साझेदारी

[जावा दत्तांशसंरचना] प्रथमेषु रेखीयसारणीषु अन्यतमम् : क्रमिकसारणी

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

जावा इत्यस्य उपयोगेन अनुक्रमसारणीयाः सरलं कार्यान्वयनम्

अनुक्रमसारणी रेखीयसंरचना अस्ति या क्रमेण दत्तांशतत्त्वानां संग्रहणार्थं निरन्तरभौतिकपतेः सह भण्डारण-एककस्य उपयोगं करोति । सरणीयां दत्तांशस्य योजनं, विलोपनं, जाँचं, परिवर्तनं च सम्पूर्णं कुर्वन्तु ।

रेखीयसारणीषु सामान्यतया निम्नलिखितविधयः सन्ति ।

सार्वजनिक वर्ग MyArrayList {
निजी int[] सरणी;
निजी int आकारः;
   //पूर्वनिर्धारितनिर्माणविधिः पूर्वनिर्धारितरूपेण स्थानं आवंटयति
SeqList (){ } 1.1.
    // क्रमसारणीयाः अन्तर्निहितक्षमता निर्दिष्टक्षमतायां सेट् कुर्वन्तु
SeqList (int initcapacity){ } 1.1.

   // नूतनानि तत्त्वानि योजयन्तु, पूर्वनिर्धारितरूपेण ते सरणीयाः अन्ते योजिताः भवन्ति
public void add (int डेटा) { }
    //pos स्थाने तत्वं योजयन्तु
public void add (int pos, int डेटा) { }
   // कश्चन तत्त्वः समाविष्टः अस्ति वा इति निर्धारयन्तु
public boolean contains (int toFind) { सत्य वापसी; } .
    // कस्यचित् तत्त्वस्य अनुरूपं स्थानं ज्ञातव्यम्
public int indexOf (int toFind) { वापसी -1; } .
    // तत्त्वं pos स्थाने प्राप्नुत
सार्वजनिक int प्राप्त (int pos) { return -1; } .
   // pos स्थाने तत्त्वं मूल्ये सेट् कुर्वन्तु
public void set (int pos, int मूल्य) { }
    //कीवर्ड कीलस्य प्रथमा आगमनं विलोपयन्तु
public void हटाओ (int toRemove) { }
   // क्रमसारणीयाः दीर्घतां प्राप्नुत
public int आकार () { return 0; } .
    //अनुक्रमसारणीं स्वच्छं कुर्वन्तु
public void स्पष्ट () { } .
   
   //अनुक्रम तालिका मुद्रयतु
public void प्रदर्शन () { } .
}

तदनन्तरं उपर्युक्तविधिना int प्रकारस्य क्रमसारणीं कार्यान्वितं कुर्वन्तु ।

  1. import java.util.Arrays;
  2. public class MyArrayList {
  3. private int[] elem;
  4. private int usedSize;
  5. private static final int DEFAULT_SIZE = 10;
  6. public MyArrayList(){
  7. elem = new int[DEFAULT_SIZE];
  8. }
  9. public MyArrayList(int initCapacity){
  10. elem = new int[initCapacity];
  11. }
  12. private boolean checkCapacity(){
  13. if(this.usedSize == elem.length){
  14. return true;
  15. }
  16. return false;
  17. }
  18. public void display(){
  19. for (int i = 0; i < this.usedSize; i++) {
  20. System.out.print(this.elem[i] + " ");
  21. }
  22. }
  23. public void add(int data){
  24. if(checkCapacity()){
  25. this.elem = Arrays.copyOf(this.elem,2*elem.length);
  26. }
  27. this.elem[this.usedSize] = data;
  28. this.usedSize++;
  29. return;
  30. }
  31. public void add(int pos,int data){
  32. if(pos > this.usedSize || pos < 0){
  33. throw new PosOutOfBoundsException("插入位置错误!");
  34. }
  35. if(checkCapacity()){
  36. this.elem = Arrays.copyOf(this.elem,2*elem.length);
  37. }
  38. for (int i = this.usedSize - 1; i >=pos ; i--) {
  39. elem[i+1] = elem[i];
  40. }
  41. this.elem[pos] = data;
  42. this.usedSize++;
  43. return;
  44. }
  45. public boolean contains(int data){
  46. for (int i = 0; i < this.usedSize; i++) {
  47. if(this.elem[i] == data){
  48. return true;
  49. }
  50. }
  51. return false;
  52. }
  53. public int indexof(int data){
  54. for (int i = 0; i < this.usedSize; i++) {
  55. if(this.elem[i] == data){
  56. return i;
  57. }
  58. }
  59. return -1;
  60. }
  61. public int get(int pos){
  62. if(pos >= this.usedSize || pos < 0){
  63. throw new PosOutOfBoundsException("输入的位置错误!");
  64. }
  65. return this.elem[pos];
  66. }
  67. public void set(int pos,int data){
  68. if(pos >= this.usedSize || pos < 0){
  69. throw new PosOutOfBoundsException("输入的位置错误!");
  70. }
  71. this.elem[pos] = data;
  72. }
  73. public int size(){
  74. return this.usedSize;
  75. }
  76. public void remove(int data){
  77. if(this.contains(data)){
  78. int pos = this.indexof(data);
  79. for (int i = pos; i < this.usedSize - 1; i++) {
  80. this.elem[pos] = this.elem[pos+1];
  81. }
  82. this.usedSize--;
  83. }else{
  84. throw new PosOutOfBoundsException("没有该元素");
  85. }
  86. }
  87. public void clear(){
  88. this.usedSize = 0;
  89. return;
  90. }
  91. }

ArrayList इत्यस्य परिचयः

संग्रहणरूपरेखायां ArrayList एकः साधारणः वर्गः अस्ति यः List अन्तरफलकं कार्यान्वितं करोति विशिष्टरूपरेखाचित्रं निम्नलिखितम् अस्ति ।

  • ArrayList सामान्यरूपेण कार्यान्वितं भवति तथा च उपयोगात् पूर्वं उदाहरणं करणीयम् ।
  • ArrayList RandomAccess अन्तरफलकं कार्यान्वितं करोति, यत् सूचयति यत् ArrayList यादृच्छिकप्रवेशं समर्थयति
  • ArrayList Cloneable अन्तरफलकं कार्यान्वितं करोति, यत् सूचयति यत् ArrayList क्लोन् कर्तुं शक्यते
  • ArrayList Serializable अन्तरफलकं कार्यान्वितं करोति, यत् सूचयति यत् ArrayList क्रमाङ्कनं समर्थयति
  • Vector इत्यस्य विपरीतम् ArrayList थ्रेड्-सुरक्षितं नास्ति तथा च एकस्मिन् थ्रेड् इत्यस्मिन् उपयोक्तुं शक्यते बहु-थ्रेड् इत्यत्र भवान् Vector अथवा इति चिन्वितुं शक्नोति
  • CopyOnWriteArrayList इति
  • ArrayList इत्यस्य अधः स्तरः एकः निरन्तरः स्थानः अस्ति तथा च गतिशीलरूपेण विस्तारितुं शक्यते इयं गतिशीलप्रकारस्य अनुक्रमसूची अस्ति ।

ArrayList इत्यस्य उपयोगः कथं भवति

ArrayList कन्स्ट्रक्टर्

ArrayList इत्यस्मिन् कन्स्ट्रक्टर् मेथड्:

ArrayList (); //कोऽपि पैरामीटर निर्माणं नास्ति

ArrayList (संग्रह<? extends E> c); //ArrayList इत्यस्य निर्माणार्थं अन्येषां संग्रहाणां उपयोगं कुर्वन्तु

ArrayList(int initialCapacity); //अनुक्रमसारणीयाः प्रारम्भिकक्षमता निर्दिशन्तु

कोड उदाहरणम् : १.

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list1 = new ArrayList<>();//无参构造
  4. List<Integer> list2 = new ArrayList<>(10);//指定容量
  5. list2.add(1);
  6. list2.add(2);
  7. list2.add(3);
  8. List<Integer> list3 = new ArrayList<>(list2);//利用其他 Collection 构建 ArrayList
  9. }
  10. }

ArrayList इत्यत्र सामान्यक्रियाः

पुच्छ प्लग

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();//无参构造
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. System.out.println(list);
  8. }
  9. }

निर्दिष्टस्थाने तत्त्वं सम्मिलितं कुर्वन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. list.add(1,4);
  8. System.out.println(list);
  9. }
  10. }

अन्यस्य क्रमसूचिकातः इन्सर्ट् एलिमेण्ट्स् समाप्तं कुर्वन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list1 = new ArrayList<>();
  4. list1.add(4);
  5. list1.add(5);
  6. list1.add(6);
  7. List<Integer> list = new ArrayList<>();
  8. list.add(1);
  9. list.add(2);
  10. list.add(3);
  11. list.addAll(list1);
  12. System.out.println(list);
  13. }
  14. }

निर्दिष्टस्थाने तत्त्वं विलोपयन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. list.remove(1);
  8. System.out.println(list);
  9. }
  10. }

निर्दिष्टदत्तांशं विलोपयन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. list.remove(new Integer(2));
  8. System.out.println(list);
  9. }
  10. }

निर्दिष्टस्थाने तत्त्वं प्राप्नुवन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. System.out.println(list.get(1));
  8. }
  9. }

निर्दिष्टस्थाने तत्त्वं नूतनदत्तांशं प्रति सेट् करोति

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. list.set(1,4);
  8. System.out.println(list);
  9. }
  10. }

क्रमसूचीं स्पष्टं कुर्वन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. list.clear();
  8. System.out.println(list);
  9. }
  10. }

क्रमसूचौ कश्चन तत्त्वः अस्ति वा इति निर्धारयन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. System.out.println(list.contains(2));
  8. System.out.println(list.contains(4));
  9. }
  10. }

प्रथमस्य निर्दिष्टस्य तत्त्वस्य अनुक्रमणिकां प्रत्यागच्छति

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. list.add(1);
  8. System.out.println(list.indexOf(1));
  9. }
  10. }

अन्तिमनिर्दिष्टस्य तत्त्वस्य अनुक्रमणिकां प्रत्यागच्छति

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. list.add(1);
  8. System.out.println(list.lastIndexOf(1));
  9. }
  10. }

सूचीयाः भागं अवरुद्धं कुर्वन्तु

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. System.out.println(list.subList(0,2));
  8. }
  9. }

ArrayList इत्यस्य भ्रमणस्य त्रयः उपायाः

ArrayList इति त्रयः प्रकाराः भ्रमितुं शक्यन्ते: for loop + subscript, foreach enhanced loop, and using iterators इति

  1. public class Test {
  2. public static void main(String[] args) {
  3. List<Integer> list = new ArrayList<>();
  4. list.add(1);
  5. list.add(2);
  6. list.add(3);
  7. //使用fori遍历
  8. for (int i = 0; i < list.size(); i++) {
  9. System.out.print(list.get(i));
  10. }
  11. System.out.println();
  12. //使用foreach遍历
  13. for(Integer integer:list){
  14. System.out.print(integer);
  15. }
  16. System.out.println();
  17. //使用迭代器遍历
  18. Iterator<Integer> it = list.listIterator();
  19. while(it.hasNext()){
  20. System.out.print(it.next());
  21. }
  22. }
  23. }

संचालन परिणाम : १.

ArrayList इत्यस्य परिदृश्यस्य उपयोगः

घुमावदार एल्गोरिदम

ताशक्रीडायाः एकं स्तम्भं यादृच्छिकरूपेण संयोजयित्वा त्रयाणां जनानां कृते वितरन्तु, प्रत्येकं पञ्च ताशपत्राणि सन्ति ।

एल्गोरिदम् इत्यस्य मूलसङ्केतस्य स्थानं : १.

shufflecards · सदैव मीठजलस्य मत्स्य/जावा क्लासिक उदाहरणानि - कोड मेघः - मुक्त स्रोतः चीन (gitee.com)

यांग हुई त्रिकोण

विषयविवरणम् : १.

संहिता : १.

  1. public class Test {
  2. public static List<List<Integer>> generate(int numRows) {
  3. List<List<Integer>> list = new LinkedList<>();
  4. for (int i = 0; i < numRows; i++) {
  5. List<Integer> row = new LinkedList<>();
  6. for (int j = 0; j < i + 1; j++) {
  7. if (j == 0 || i == j) {
  8. row.add(1);
  9. } else {
  10. row.add(list.get(i - 1).get(j - 1) + list.get(i - 1).get(j));
  11. }
  12. }
  13. list.add(row);
  14. }
  15. return list;
  16. }
  17. public static void main(String[] args) {
  18. Scanner scanner = new Scanner(System.in);
  19. int numRows = scanner.nextInt();
  20. List<List<Integer>> list = generate(numRows);
  21. for (int i = 0; i < numRows; i++) {
  22. for (int j = 0; j < i + 1; j++) {
  23. System.out.print(list.get(i).get(j) + " ");
  24. }
  25. System.out.println();
  26. }
  27. }
  28. }

परिणामग्राफं चालयन् : १.