Compare commits

..

No commits in common. "74c7268d4fefcf0e83a75dde4ffb854952a8f43c" and "92a8dc27f730b14fa006108b5f99b8cff784595d" have entirely different histories.

3 changed files with 48 additions and 69 deletions

View File

@ -1,8 +1,11 @@
using HoistingCrane.Drawning; using System;
using HoistingCrane.Exceptions; using System.CodeDom.Compiler;
using System.Windows.Forms.VisualStyles;
namespace HoistingCrane.CollectionGenericObjects; namespace HoistingCrane.CollectionGenericObjects;
public class ListGenericObjects<T> : ICollectionGenericObjects<T> where T : class public class ListGenericObjects<T> : ICollectionGenericObjects<T>
where T : class
{ {
/// <summary> /// <summary>
/// Список объектов, которые храним /// Список объектов, которые храним
@ -63,25 +66,39 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T> where T : clas
return Count; return Count;
} }
public int Insert(T obj, int position)
{
// Проверка, что не превышено максимальное количество элементов
if (Count == _maxCount)
{
return -1;
}
// Проверка позиции
if (position >= Count || position < 0)
{
return -1;
}
_collection.Insert(position, obj);
return position;
}
public T? Remove(int position) public T? Remove(int position)
{ {
if (position < 0 || position >= list.Count) throw new PositionOutOfCollectionException(position); // Проверка позиции
T? temp = list[position]; if (position >= Count || position < 0)
list.RemoveAt(position); {
return temp; return null;
}
T? obj = _collection[position];
_collection.RemoveAt(position);
return obj;
} }
public IEnumerable<T?> GetItems() public IEnumerable<T?> GetItems()
{ {
for(int i = 0; i < list.Count; i++) for (int i = 0; i < Count; ++i)
{ {
yield return list[i]; yield return _collection[i];
}
}
public void CollectionSort(IComparer<T> comparer)
{
list.Sort(comparer);
} }
} }
} }

View File

@ -3,15 +3,13 @@
public class MassiveGenericObjects<T> : ICollectionGenericObjects<T> public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
where T : class where T : class
{ {
private T?[] arr; /// <summary>
public MassivGenericObjects() /// Массив объектов, которые храним
{ /// </summary>
arr = Array.Empty<T?>(); private T?[] _collection;
}
public int Count public int Count => _collection.Length;
{
get { return arr.Length; }
}
public int MaxCount public int MaxCount
{ {
get get
@ -32,53 +30,17 @@ where T : class
_collection = new T?[value]; _collection = new T?[value];
} }
} }
}
if (arr[i] == null)
{
arr[i] = obj;
return i;
}
}
}
}
throw new CollectionOverflowException(Count);
}
catch (PositionOutOfCollectionException ex)
{
MessageBox.Show(ex.Message);
return -1;
}
catch (ObjectIsPresentInTheCollectionException ex)
{
MessageBox.Show(ex.Message);
return -1;
} }
} }
public T? Remove(int position) public CollectionType GetCollectionType => CollectionType.Massive;
{
if (position < 0 || position >= Count) throw new PositionOutOfCollectionException(position);
if (arr[position] == null) throw new ObjectNotFoundException(position);
T? temp = arr[position];
arr[position] = null;
return temp;
}
public IEnumerable<T?> GetItems() /// <summary>
/// Конструктор
/// </summary>
public MassiveGenericObjects()
{ {
for (int i = 0; i < arr.Length; i++) _collection = Array.Empty<T?>();
{
yield return arr[i];
=========
>>>>>>>>> Temporary merge branch 2
}
}
public void CollectionSort(IComparer<T> comparer)
{
T[] notNullArr = arr.OfType<T>().ToArray();
Array.Sort(notNullArr, comparer);
Array.Copy(notNullArr, 0, arr, 0, notNullArr.Length);
}
} }
public T? Get(int position) public T? Get(int position)