ASDV-Java/Semester 2/Assignments/MP2_CalebFontenot/Circle2D.html

323 lines
28 KiB
HTML

2023-02-07 15:16:31 +07:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Circle2D.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST0 {color: #287bde}
.number {color: #6897bb}
.string {color: #6a8759}
.ST1 {color: #9876aa}
.ST2 {color: #ffc66d}
.ST5 {color: #8a653b}
.ST3 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST7 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST4 {font-family: monospace; font-weight: bold; font-style: italic}
.ST6 {color: #808080; font-family: monospace; font-weight: bold; font-style: italic}
.comment {color: #808080}
.whitespace {color: #505050}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP2_CalebFontenot/src/main/java/com/calebfontenot/mp2_calebfontenot/Circle2D.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp2_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> Circle2D {
<span class="literal">private</span> <span class="literal">double</span> <span class="ST1">x</span>;
<span class="literal">private</span> <span class="literal">double</span> <span class="ST1">y</span>;
<span class="literal">private</span> <span class="literal">double</span> <span class="ST1">radius</span>;
<span class="literal">private</span> String <span class="ST1">name</span>;
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Get</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">name</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">name</span>
<span class="comment">*/</span>
<span class="literal">public</span> String <span class="ST2">getName</span>() {
<span class="literal">return</span> <span class="ST1">name</span>;
}
<span class="literal">public</span> Circle2D() {
<span class="literal">this</span>.<span class="ST1">x</span> = <span class="literal">this</span>.<span class="ST1">y</span> = <span class="number">0</span>;
<span class="literal">this</span>.<span class="ST1">radius</span> = <span class="number">1</span>;
<span class="literal">this</span>.<span class="ST1">name</span> = <span class="string">&quot;</span><span class="string">Default Circle</span><span class="string">&quot;</span>;
}
<span class="literal">public</span> Circle2D(<span class="literal">double</span> x, <span class="literal">double</span> y, <span class="literal">double</span> radius, String name) {
<span class="literal">this</span>.<span class="ST1">x</span> = x;
<span class="literal">this</span>.<span class="ST1">y</span> = y;
<span class="literal">this</span>.<span class="ST1">radius</span> = radius;
<span class="literal">this</span>.<span class="ST1">name</span> = name;
}
<span class="literal">public</span> Circle2D(<span class="literal">double</span> x, <span class="literal">double</span> y, <span class="literal">double</span> radius) {
<span class="literal">this</span>.<span class="ST1">x</span> = x;
<span class="literal">this</span>.<span class="ST1">y</span> = y;
<span class="literal">this</span>.<span class="ST1">radius</span> = radius;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Get</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">x</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">x</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getX</span>() {
<span class="literal">return</span> <span class="ST1">x</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Get</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">y</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">y</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getY</span>() {
<span class="literal">return</span> <span class="ST1">y</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Get</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">radius</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">radius</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getRadius</span>() {
<span class="literal">return</span> <span class="ST1">radius</span>;
}
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getArea</span>() {
<span class="literal">return</span> Math.<span class="ST3">PI</span> * <span class="literal">this</span>.<span class="ST1">radius</span> * <span class="literal">this</span>.<span class="ST1">radius</span>;
}
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getPerimeter</span>() {
<span class="literal">return</span> <span class="number">2</span> * Math.<span class="ST3">PI</span> * <span class="literal">this</span>.<span class="ST1">radius</span>;
}
@Override
<span class="literal">public</span> String <span class="ST2">toString</span>() {
<span class="literal">return</span> <span class="ST1">name</span> + <span class="string">&quot;</span><span class="string">{</span><span class="string">&quot;</span> + <span class="string">&quot;</span><span class="string">x=</span><span class="string">&quot;</span> + <span class="ST1">x</span> + <span class="string">&quot;</span><span class="string">, y=</span><span class="string">&quot;</span> + <span class="ST1">y</span> + <span class="string">&quot;</span><span class="string">, radius=</span><span class="string">&quot;</span> + <span class="ST1">radius</span> + <span class="string">&quot;</span><span class="string"> }</span><span class="string">&quot;</span>;
}
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">hashCode</span>() {
<span class="literal">int</span> hash = <span class="number">5</span>;
<span class="literal">return</span> hash;
}
@Override
<span class="literal">public</span> <span class="literal">boolean</span> <span class="ST2">equals</span>(Object obj) {
<span class="literal">if</span> (<span class="literal">this</span> == obj) {
<span class="literal">return</span> <span class="literal">true</span>;
}
<span class="literal">if</span> (obj == <span class="literal">null</span>) {
<span class="literal">return</span> <span class="literal">false</span>;
}
<span class="literal">if</span> (getClass() != obj.getClass()) {
<span class="literal">return</span> <span class="literal">false</span>;
}
<span class="literal">final</span> Circle2D other = (Circle2D) obj;
<span class="literal">if</span> (Double.<span class="ST4">doubleToLongBits</span>(<span class="literal">t</span><span class="literal">his</span>.<span class="ST1">x</span>) != Double.<span class="ST4">doubleToLongBits</span>(other.<span class="ST1">x</span>)) {
<span class="literal">return</span> <span class="literal">false</span>;
}
<span class="literal">if</span> (Double.<span class="ST4">doubleToLongBits</span>(<span class="literal">t</span><span class="literal">his</span>.<span class="ST1">y</span>) != Double.<span class="ST4">doubleToLongBits</span>(other.<span class="ST1">y</span>)) {
<span class="literal">return</span> <span class="literal">false</span>;
}
<span class="literal">return</span> Double.<span class="ST4">doubleToLongBits</span>(<span class="literal">t</span><span class="literal">his</span>.<span class="ST1">radius</span>) == Double.<span class="ST4">doubleToLongBits</span>(other.<span class="ST1">radius</span>);
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Determines</span> <span class="comment">if</span> <span class="comment">a</span> <span class="comment">point</span> <span class="comment">is</span> <span class="comment">inside</span> <span class="comment">the</span> <span class="comment">circle</span><span class="comment">.</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">x</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">y</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">true</span> <span class="comment">if</span> <span class="comment">the</span> <span class="comment">specified</span> <span class="comment">point</span><span class="comment"> (</span><span class="comment">x</span><span class="comment">, </span><span class="comment">y</span><span class="comment">) </span><span class="comment">is</span> <span class="comment">inside</span> <span class="comment">the</span> <span class="comment">circle</span><span class="comment">, </span><span class="comment">otherwise</span> <span class="comment">false</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">boolean</span> <span class="ST2">contains</span>(Circle2D other) {
<span class="literal">double</span> dx = <span class="literal">this</span>.<span class="ST1">x</span> - other.<span class="ST1">x</span>;
<span class="literal">double</span> dy = <span class="literal">this</span>.<span class="ST1">y</span> - other.<span class="ST1">y</span>;
<span class="literal">double</span> distance = Math.<span class="ST4">sqrt</span>(dx * dx + dy * dy);
<span class="literal">return</span> distance + other.<span class="ST1">radius</span> &lt;= <span class="literal">this</span>.<span class="ST1">radius</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Determines</span> <span class="comment">if</span> <span class="comment">this</span> <span class="comment">circle</span> <span class="comment">overlaps</span> <span class="comment">with</span> <span class="comment">parameter</span> <span class="comment">circle</span><span class="comment">.</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">circle</span> <span class="comment">to</span> <span class="comment">compare</span> <span class="comment">for</span> <span class="comment">overlapping</span><span class="comment">.</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">true</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">boolean</span> <span class="ST2">overlaps</span>(Circle2D other) {
<span class="literal">double</span> dx = <span class="literal">this</span>.<span class="ST1">x</span> - other.<span class="ST1">x</span>;
<span class="literal">double</span> dy = <span class="literal">this</span>.<span class="ST1">y</span> - other.<span class="ST1">y</span>;
<span class="literal">double</span> distance = Math.<span class="ST4">sqrt</span>(dx * dx + dy * dy);
<span class="literal">return</span> distance &lt;= <span class="literal">this</span>.<span class="ST1">radius</span> + other.<span class="ST1">radius</span>;
}
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">x1</span> <span class="comment">x</span> <span class="comment">of</span> <span class="comment">point</span><span class="comment"> 1</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">y1</span> <span class="comment">x</span> <span class="comment">of</span> <span class="comment">point</span><span class="comment"> 1</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">x2</span> <span class="comment">x</span> <span class="comment">of</span> <span class="comment">point</span><span class="comment"> 1</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">y2</span> <span class="comment">x</span> <span class="comment">of</span> <span class="comment">point</span><span class="comment"> 1</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">distance</span> <span class="comment">between</span> <span class="comment">the</span> <span class="comment">two</span> <span class="comment">points</span>
<span class="comment">*/</span>
<span class="literal">private</span> <span class="literal">static</span> <span class="literal">double</span> <span class="ST6">distance</span>(<span class="literal">double</span> x1, <span class="literal">double</span> y1, <span class="literal">double</span> x2, <span class="literal">double</span> y2) {
<span class="literal">return</span> Math.<span class="ST4">sqrt</span>((x1 - x2) * (x1) * (x1 - x2)
+ (y1 - y2) * (y1 - y2));
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Sort</span> <span class="comment">the</span> <span class="comment">array</span> <span class="comment">in</span> <span class="comment">ascending</span> <span class="comment">order</span> <span class="comment">by</span> <span class="comment">perimeter</span> <span class="comment">i</span><span class="comment">=</span><span class="comment">size</span><span class="comment">;</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">array</span> <span class="comment">the</span> <span class="comment">array</span> <span class="comment">to</span> <span class="comment">be</span> <span class="comment">used</span> <span class="comment">for</span> <span class="comment">sorting</span><span class="comment">, </span><span class="comment">not</span> <span class="comment">altered</span><span class="comment">.</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">sorted</span> <span class="comment">array</span><span class="comment">;</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> Circle2D[] <span class="ST7">sortCirclesByPerimeter</span>(Circle2D[] oldArray) {
Circle2D[] array = <span class="literal">new</span> Circle2D[oldArray.<span class="ST1">length</span>];
System.<span class="ST4">arraycopy</span>(oldArray, <span class="number">0</span>, array, <span class="number">0</span>, oldArray.<span class="ST1">length</span>);
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; array.<span class="ST1">length</span> - <span class="number">1</span>; ++i) {
<span class="literal">for</span> (<span class="literal">int</span> j = i + <span class="number">1</span>; j &lt; array.<span class="ST1">length</span>; ++j) {
<span class="literal">double</span> perimeter1 = array[i].getPerimeter();
<span class="literal">double</span> perimeter2 = array[j].getPerimeter();
<span class="literal">if</span> (perimeter1 &gt; perimeter2) {
Circle2D temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
<span class="literal">return</span> array;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST7">printPerimeter</span>(Circle2D[] array) {
<span class="literal">for</span> (Circle2D circle : array) {
System.<span class="ST3">out</span>.println(circle.<span class="ST1">name</span> + <span class="string">&quot;</span> <span class="string">&quot;</span> + circle.getPerimeter());
}
System.<span class="ST3">out</span>.println();
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Sort</span> <span class="comment">the</span> <span class="comment">array</span> <span class="comment">in</span> <span class="comment">ascending</span> <span class="comment">order</span> <span class="comment">by</span> <span class="comment">perimeter</span> <span class="comment">size</span><span class="comment">.</span> <span class="comment">Returns</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">sorted</span> <span class="comment">array</span><span class="comment">.</span> <span class="comment">You</span> <span class="comment">compare</span> <span class="comment">every</span> <span class="comment">circle</span> <span class="comment">with</span> <span class="comment">all</span> <span class="comment">other</span> <span class="comment">circles</span><span class="comment">.</span> <span class="comment">If</span> <span class="comment">it</span> <span class="comment">overlaps</span> <span class="comment">with</span> <span class="comment">all</span> <span class="comment">others</span> <span class="comment">it</span> <span class="comment">should</span> <span class="comment">be</span> <span class="comment">placed</span> <span class="comment">first</span><span class="comment">.</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">array</span> <span class="comment">The</span> <span class="comment">array</span> <span class="comment">used</span> <span class="comment">for</span> <span class="comment">sorting</span><span class="comment">.</span>
<span class="comment"> * </span><span class="comment">@return</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">int</span>[] <span class="ST7">circleOverlap</span>(Circle2D[] array) {
<span class="literal">int</span>[] overlapCount = <span class="literal">new</span> <span class="literal">int</span>[array.<span class="ST1">length</span>];
<span class="comment">// count the number of times each circle overlaps</span>
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; array.<span class="ST1">length</span>; ++i) {
<span class="literal">for</span> (<span class="literal">int</span> j = <span class="number">0</span>; j &lt; array.<span class="ST1">length</span>; ++j) {
<span class="literal">if</span> (i != j &amp;&amp; array[i].overlaps(array[j])) {
overlapCount[i]++;
}
}
}
<span class="literal">return</span> overlapCount;
}
<span class="literal">public</span> <span class="literal">static</span> Circle2D[] <span class="ST7">sortCirclesByNumberOfTimesOverlapping</span>(Circle2D[] array) {
<span class="literal">int</span>[] overlapCount = <span class="ST4">circleOverlap</span>(array);
<span class="comment">// count the number of times each circle overlaps</span>
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; array.<span class="ST1">length</span>; ++i) {
<span class="literal">for</span> (<span class="literal">int</span> j = <span class="number">0</span>; j &lt; array.<span class="ST1">length</span>; ++j) {
<span class="literal">if</span> (i != j &amp;&amp; array[i].overlaps(array[j])) {
overlapCount[i]++;
}
}
}
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; array.<span class="ST1">length</span>; i++) {
<span class="literal">int</span> min = i;
<span class="literal">for</span> (<span class="literal">int</span> j = i + <span class="number">1</span>; j &lt; array.<span class="ST1">length</span>; j++) {
<span class="literal">if</span> (overlapCount[j] &lt; overlapCount[min]) {
min = j;
}
<span class="literal">if</span> (overlapCount[j] == overlapCount[min]) {
<span class="literal">if</span> (array[j].getPerimeter() &lt; array[min].getPerimeter()) {
min = j;
}
}
}
<span class="comment">// swap the elements</span>
<span class="literal">int</span> tmpCount = overlapCount[i];
overlapCount[i] = overlapCount[min];
overlapCount[min] = tmpCount;
Circle2D temp = array[i];
array[i] = array[min];
array[min] = temp;
}
<span class="ST4">print</span>(<span class="ST4">c</span><span class="ST4">ircleOverlap</span>(array));
<span class="literal">return</span> array;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST7">print</span>(Circle2D[] array) {
<span class="literal">for</span> (Circle2D circle : array) {
System.<span class="ST3">out</span>.println(circle);
}
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST7">print</span>(<span class="literal">int</span>[] array) {
<span class="literal">for</span> (<span class="literal">int</span> circle : array) {
System.<span class="ST3">out</span>.println(circle);
}
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST7">print</span>(Circle2D[] array, Circle2D c1) {
<span class="literal">for</span> (Circle2D circle : array) {
System.<span class="ST3">out</span>.println(circle);
System.<span class="ST3">out</span>.println(<span class="string">&quot;</span><span class="string">c1.contains: </span><span class="string">&quot;</span> + c1.contains(circle));
System.<span class="ST3">out</span>.println(<span class="string">&quot;</span><span class="string">c1.overlaps: </span><span class="string">&quot;</span> + c1.overlaps(circle));
}
}
<span class="literal">public</span> <span class="literal">static</span> Circle2D[] <span class="ST7">createArrayOfCircle</span>() {
Circle2D[] circleArray = <span class="literal">new</span> Circle2D[<span class="number">8</span>];
circleArray[<span class="number">0</span>] = <span class="literal">new</span> Circle2D(<span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>, <span class="string">&quot;</span><span class="string">c1</span><span class="string">&quot;</span>);
circleArray[<span class="number">1</span>] = <span class="literal">new</span> Circle2D(<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="string">&quot;</span><span class="string">c2</span><span class="string">&quot;</span>);
circleArray[<span class="number">2</span>] = <span class="literal">new</span> Circle2D(<span class="number">3</span><span class="number">.2</span>, -<span class="number">2.2</span>, <span class="number">1</span><span class="number">.2</span>, <span class="string">&quot;</span><span class="string">c3</span><span class="string">&quot;</span>);
circleArray[<span class="number">3</span>] = <span class="literal">new</span> Circle2D(<span class="number">4</span><span class="number">.2</span>, <span class="number">0</span>, <span class="number">4</span>, <span class="string">&quot;</span><span class="string">c4</span><span class="string">&quot;</span>);
circleArray[<span class="number">4</span>] = <span class="literal">new</span> Circle2D(-<span class="number">7</span>, <span class="number">5</span>, <span class="number">4</span><span class="number">.5</span>, <span class="string">&quot;</span><span class="string">c5</span><span class="string">&quot;</span>);
circleArray[<span class="number">5</span>] = <span class="literal">new</span> Circle2D(<span class="number">1</span><span class="number">9</span>, <span class="number">1</span>, <span class="number">1</span><span class="number">0</span>, <span class="string">&quot;</span><span class="string">c6</span><span class="string">&quot;</span>);
circleArray[<span class="number">6</span>] = <span class="literal">new</span> Circle2D(<span class="number">1</span>, <span class="number">8</span><span class="number">.8</span>, <span class="number">3</span>, <span class="string">&quot;</span><span class="string">c7</span><span class="string">&quot;</span>);
circleArray[<span class="number">7</span>] = <span class="literal">new</span> Circle2D(<span class="number">4</span><span class="number">.1</span>, <span class="number">9</span><span class="number">.1</span>, <span class="number">1</span><span class="number">.3</span>, <span class="string">&quot;</span><span class="string">c8</span><span class="string">&quot;</span>);
<span class="literal">return</span> circleArray;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST7">main</span>(String[] args) {
Circle2D <span class="comment">c1</span> = <span class="literal">new</span> Circle2D(<span class="number">2</span>, <span class="number">2</span>, <span class="number">5</span><span class="number">.5</span>);
<span class="comment">//System.out.println(c1);</span>
<span class="comment">//System.out.println(&quot;Area is &quot; + c1.getArea());</span>
<span class="comment">//System.out.println(&quot;Perimeter is &quot; + c1.getPerimeter());</span>
Circle2D[] circleArray = <span class="ST4">createArrayOfCircle</span>();
System.<span class="ST3">out</span>.println();
<span class="ST4">printPerimeter</span>(circleArray);
Circle2D[] sortedArray = <span class="ST4">sortCirclesByPerimeter</span>(circleArray);
<span class="ST4">printPerimeter</span>(sortedArray);
<span class="ST4">print</span>(circleArray);
System.<span class="ST3">out</span>.println();
Circle2D[] overlapArray = Circle2D.<span class="ST4">sortCirclesByNumberOfTimesOverlapping</span>(circleArray);
<span class="ST4">print</span>(overlapArray);
}
}
</pre></body>
</html>